Python - 通过索引从列表中提取多个列表

6

有没有一种高效的方法来循环遍历一个列表中的子列表,并将每个子列表的第一个元素提取到另一个列表中,将第二个元素提取到另一个列表中,以此类推。例如:

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?
1个回答

7
您可以使用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()来创建迭代器而不是列表。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接