Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
循环迭代的高级Python3列表_Python_For Loop_Python 3.x - Fatal编程技术网

循环迭代的高级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解包的优点/缺点是什么?