一尘不染

Python-元组在for循环中解包

python

我偶然发现以下代码:

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:需要多个值才能解压

有谁知道它的作用或与之有关的事情,可以通过谷歌了解更多信息吗?


阅读 774

收藏
2020-02-20

共1个答案

一尘不染

你可以通过Google搜索“元组拆箱”。可以在Python的各个地方使用它。最简单的是分配

>>> x = (1,2)
>>> a, b = x
>>> a
1
>>> b
2

在for循环中,其工作原理类似。如果iterable的每个元素都是一个元组,则可以指定两个变量,循环中的每个元素都将解压缩为这两个元素。

>>> 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", b
First 1 then 2
First 3 then 4
First 5 then 6

枚举函数创建一个可迭代的元组,因此可以通过这种方式使用。

2020-02-20