遍历列表的列表,并使用第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)
?
答
您可以使用解包来传递输入的子列表到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
'为X,Y,Z的zip(*测试) :' –