所以我有以下列表清单:
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)
?
答案 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
可能比一般的列表推导更有效