循环迭代的高级Python3列表
注意这是一个简化的示例是否可以执行以下操作循环迭代的高级Python3列表,python,for-loop,python-3.x,Python,For Loop,Python 3.x,注意这是一个简化的示例是否可以执行以下操作 l=[[1,2,3],["a","b","c"],["x","y","z"] 然后有一个for循环,遍历每个列表中的所有第一项,然后是所有第二项,然后是所有第三项。您可以使用zip(…)函数 >>> for elem in zip(*l): for a in elem: print(a) 1 a x 2 b y 3 c z 同样,对于长度不均匀的列表,可以使用zip_longest(…)
l=[[1,2,3],["a","b","c"],["x","y","z"]
然后有一个for循环,遍历每个列表中的所有第一项,然后是所有第二项,然后是所有第三项。您可以使用
zip(…)
函数
>>> for elem in zip(*l):
for a in elem:
print(a)
1
a
x
2
b
y
3
c
z
同样,对于长度不均匀的列表,可以使用zip_longest(…)
(izip_longest
,用于Py2x)
>>> from itertools import zip_longest
>>> l=[[1,2,3],["a","b","c"],["x","y"]]
>>> for elem in zip_longest(*l, fillvalue='Empty'):
print(elem)
(1, 'a', 'x')
(2, 'b', 'y')
(3, 'c', 'Empty')
使用解包,而不是一秒钟的循环!这取决于序列中有多少个值。OP说这是一个简化的例子,所以我做了一个通用的例子。谢谢你展示了长度均匀的例子。这将在以后有用@PeterVaro解包的优点/缺点是什么?