2012-12-22 15 views
5

Czy istnieje skuteczny sposób na przejrzenie listy list i wypakowanie pierwszego elementu z każdej listy do innej listy, 2 elementy do innej itd. Takich jak:Python - Wyodrębnia wiele list z listy list według indeksu

x = [[1, 2, 3], [4, 5, 6] , [7, 8, 9]] 
y1 = [i[0] for i in x] 
y2 = [i[1] for i in x] 

Czy istnieje sposób, aby wyodrębnić y1 i y2 w zrozumieniu jednej listy?

Odpowiedz

7

Można użyć 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) 

Można użyć itertools.izip() zamiast zip() aby iterator zamiast listy.