循环遍历列表并使用ith迭代器

时间:2017-04-25 14:18:43

标签: python list for-loop iterator zip

所以我有以下列表清单:

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

有更干净,更Pythonic的方法吗?像zip(test, axis=0)

这样的东西

2 个答案:

答案 0 :(得分:4)

您可以使用解包将输入的子列表作为变量参数传递给zip

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

(你可以对x,y,z coords做同样的事情,将params传递给print

答案 1 :(得分:0)

如果你使用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可能比一般的列表推导更有效