是否有一种有效的方法来遍历列表列表并将每个列表的第一个元素提取到另一个列表中,将第二个元素提取到另一个列表中,等等。例如:
x = [[1, 2, 3], [4, 5, 6] , [7, 8, 9]]
y1 = [i[0] for i in x]
y2 = [i[1] for i in x]
有没有办法在单个列表推导中提取y1和y2?
答案 0 :(得分:6)
您可以使用zip
:
>>> x = [[1, 2, 3], [4, 5, 6] , [7, 8, 9]]
>>> for l in zip(*x):
... print l
...
(1, 4, 7)
(2, 5, 8)
(3, 6, 9)
您可以使用itertools.izip()
代替zip()
来制作迭代器而不是列表。