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

Python-按索引从列表列表中提取多个列表,python,Python,是否有一种有效的方法来循环列表,并将每个列表的第一个元素提取到另一个列表中,将第二个元素提取到另一个列表中,等等,例如: 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?您可以使用zip: >>> x = [[1, 2, 3], [4, 5, 6] , [7, 8, 9]] >>> for l i

是否有一种有效的方法来循环列表,并将每个列表的第一个元素提取到另一个列表中,将第二个元素提取到另一个列表中,等等,例如:

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?

您可以使用
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)
您可以使用代替
zip()
生成迭代器而不是列表