我正在迭代一个元组列表,只是想知道是否有一个较小的符号来执行以下操作:
for tuple in list:
(a,b,c,d,e) = tuple
或等效的
for (a,b,c,d,e) in list:
tuple = (a,b,c,d,e)
这两个snippits都允许我每个项目以及整体访问元组。但有没有一种表示法以某种方式将这两行合并到for语句中?看起来像Pythonesque这样的特征,我认为它可能以某种形状或形式存在。
答案 0 :(得分:2)
这可能是你可以使用的黑客攻击。可能有更好的方法,但这就是为什么它是一个黑客。你的例子都很好,这就是我肯定会这样做的。
>>> list1 = [(1, 2, 3, 4, 5)]
>>> for (a, b, c, d, e), tup in zip(list1, list1):
print a, b, c, d, e
print tup
1 2 3 4 5
(1, 2, 3, 4, 5)
另外,请不要将tuple
用作变量名。
答案 1 :(得分:2)
pythonic方式是你决定的第一个选择:
for tup in list:
a,b,c,d,e = tup
答案 2 :(得分:0)
Python中没有任何内容可以让你这样做,因为绝大多数时候,你只需要以某种方式访问元组:作为元组或作为单独的元素。在任何情况下,像
for t in the_list:
a,b,c,d,e = t
看起来很干净,我无法想象有什么理由要求它更加浓缩。这就是我在极少数情况下需要这种访问的方式。
如果您只需要获取元组的一个或两个元素,可能只说c
和e
,并且您不需要重复使用它们,则可以将它们作为{{ {1}}和t[2]
。这减少了代码中变量的数量,这可能使它更具可读性。