6

リストのリストをループして、各リストの最初の要素を別のリストに抽出し、2 番目の要素を別のリストに抽出するなどの効率的な方法はありますか?

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 を抽出する方法はありますか?

4

1 に答える 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()in place ofを使用しzip()て、リストの代わりにイテレータを作成できます。

于 2012-12-22T06:57:49.187 に答える