遍历列表的列表,并使用第i个迭代器

问题描述:

所以我有以下列出的清单:遍历列表的列表,并使用第i个迭代器

test = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

我想环路i个元素在在内部列表。我可以通过使用zip做到这一点:

for x, y, z in zip(test[0], test[1], test[2]): 
    print(x, y, z) 

将返回:

1 4 7 
2 5 8 
3 6 9 

是否有一个更清洁,更Python的方式来做到这一点?像zip(test, axis=0)

+4

'为X,Y,Z的zip(*测试) :' –

您可以使用解包来传递输入的子列表到zip可变参数:

for xyz in zip(*test): 
    print(*xyz) 

(你可以做同样的X,Y,Z COORDS通过PARAMS到print

+0

这正是我所期待的。谢谢! – u2berggeist

如果使用numpy.array你可以简单地使用数组的transpose和遍历行

>>> import numpy as np 
>>> test = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] 
>>> t = np.array(test) 
>>> t 
array([[1, 2, 3], 
     [4, 5, 6], 
     [7, 8, 9]]) 

然后遍历

for row in t.T: 
    print(row) 

[1 4 7] 
[2 5 8] 
[3 6 9] 

取决于你打算做什么,numpy很可能会比列表解析更有效

+0

主要问题在于获取单个值到各自的变量而不是打印。虽然谢谢! – u2berggeist