2012-12-22 15 views
5

Gibt es eine effiziente Möglichkeit, eine Liste von Listen durchzulaufen und das erste Element jeder Liste in eine andere Liste, zweite Elemente in eine andere Liste usw. zu extrahieren.Python - Extrahieren mehrerer Listen aus einer Liste von Listen nach Index

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

Gibt es eine Möglichkeit, y1 und y2 in einem einzigen Listenverständnis zu extrahieren?

Antwort

7

Sie könnten zip verwenden: statt einer Liste

>>> 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) 

Sie itertools.izip() anstelle von zip() verwenden können, um einen Iterator zu machen.

Verwandte Themen