元组解包为循环

元组解包为循环

我无意中发现了以下代码:

for i,a in enumerate(attributes):
   labels.append(Label(root, text = a, justify = LEFT).grid(sticky = W))
   e = Entry(root)
   e.grid(column=1, row=i)
   entries.append(e)
   entries[i].insert(INSERT,"text to insert")

我不明白“I,a”的意思,在Google上搜索关于“for”的信息是很痛苦的,当我尝试使用代码时,我会得到错误:

ValueError:需要一个以上的值来解压

有谁知道它做了什么,或者与它有什么关系,我可以在谷歌上了解更多吗?


繁星点点滴滴
浏览 373回答 3
3回答

慕容森

你可以在“元组解压”上搜索。这可以在Python中的不同地方使用。最简单的是赋值>>> x = (1,2)>>> a, b = x>>> a1>>> b2在for循环中,它的工作方式类似。如果迭代器的每个元素都是元组,那么可以指定两个变量,循环中的每个元素都将被解压缩到这两个变量中。>>> x = [(1,2), (3,4), (5,6)]>>> for item in x:...     print "A tuple", item A tuple (1, 2)A tuple (3, 4)A tuple (5, 6)>>> for a, b in x:...     print "First", a, "then", bFirst 1 then 2First 3 then 4First 5 then 6枚举函数创建了一个可迭代的元组,因此可以这种方式使用它。

素胚勾勒不出你

枚举基本上为您提供了在for循环中使用的索引。因此:for i,a in enumerate([4, 5, 6, 7]):     print i, ": ", a将印刷:0: 41: 52: 63: 7

守着星空守着你

以这段代码为例:elements = ['a', 'b', 'c', 'd', 'e']index = 0for element in elements:   print element, index   index += 1循环遍历列表并存储索引变量。enumerate()做同样的事情,但更简洁:elements = ['a', 'b', 'c', 'd', 'e']for index, element in enumerate(elements):   print element, index这个index, element需要表示法,因为enumerate返回一个元组((1, 'a'), (2, 'b').)它被解压缩成两个不同的变量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python