为了账号安全,请及时绑定邮箱和手机立即绑定

元组解包为循环

元组解包为循环

繁星点点滴滴 2019-07-17 16:26:19
元组解包为循环我无意中发现了以下代码: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:需要一个以上的值来解压有谁知道它做了什么,或者与它有什么关系,我可以在谷歌上了解更多吗?
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

你可以在“元组解压”上搜索。这可以在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

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


查看完整回答
反对 回复 2019-07-17
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

枚举基本上为您提供了在for循环中使用的索引。因此:

for i,a in enumerate([4, 5, 6, 7]):
    print i, ": ", a

将印刷:

0: 41: 52: 63: 7


查看完整回答
反对 回复 2019-07-17
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

以这段代码为例:

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').)它被解压缩成两个不同的变量。


查看完整回答
反对 回复 2019-07-17
  • 3 回答
  • 0 关注
  • 372 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信