我正在遍历一个元组列表,只是想知道是否有一个较小的符号来执行以下操作:
for tuple in list:
(a,b,c,d,e) = tuple
或同等的
for (a,b,c,d,e) in list:
tuple = (a,b,c,d,e)
这两个片段都允许我访问每个项目的元组以及整体。但是有没有一种符号可以以某种方式将这两行组合到 for 语句中?这似乎是一个 Python 风格的功能,我认为它可能以某种形状或形式存在。
这可能是您可以使用的 hack。可能有更好的方法,但这就是为什么它是一个黑客。你的例子都很好,我当然会这样做。
>>> 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
用作变量名。
pythonic方式是您提到的第一个选项:
for tup in list:
a,b,c,d,e = tup
Python 中并没有真正内置的东西可以让你这样做,因为绝大多数时候,你只需要以一种或另一种方式访问元组:作为元组或作为单独的元素。无论如何,像
for t in the_list:
a,b,c,d,e = t
看起来很干净,我无法想象有什么充分的理由希望它比这更浓缩。这就是我在极少数需要这种访问权限的情况下所做的。
如果您只需要获取元组的一两个元素,例如可能c
且e
仅,并且您不需要重复使用它们,则可以使用t[2]
和访问它们t[4]
。这减少了代码中变量的数量,这可能使其更具可读性。