在不知道内部列表的数量的情况下迭代列表列表

alv*_*vas 2 python zip list python-itertools

我有一份清单清单:

x = [[1,2,3], [4,2], [5,4,1]]
Run Code Online (Sandbox Code Playgroud)

我想顺序遍历内部列表中的元素并获取:

1 4 5
2 2 4
3 None 1
Run Code Online (Sandbox Code Playgroud)

我试过这个,但我无法得到最后一行:

>>> x = [[1,2,3], [4,2], [5,4,1]]
>>> a, b, c = x
>>> for i,j,k in zip(a,b,c):
...     print i,j,k
... 
1 4 5
2 2 4
Run Code Online (Sandbox Code Playgroud)

鉴于我不知道有多少内部列表,我如何实现所需的结果?

jon*_*rpe 6

您可以使用itertools.izip_longest填充较短的子列表:

for t in izip_longest(*x):
    print t
Run Code Online (Sandbox Code Playgroud)

请注意使用*xt处理未知数量的子列表.