2011-08-03 12 views
5

さてさて、私は、私はzipファイルを実行するとき、私は取得するには、今のところこのリストのリストにアクセスする方法はありますか?

listx = [2, 4, 5, 9, 11] 
listy = [3, 5, 9, 12, 14] 

のように見える二つのリストを持っているこの

listz = zip(listx, listy) 
listz = [(2,3), (4,5), (5,9), (9, 12), (11,14)] 

代わりにリストのリストを作るためにどのような方法がありますそう

listz = [[2,3], [4,5], [5,9], [9,12], [11,14]] 

おかげのような配列、の!

+3

なぜタプルのリストではなくリストのリストにする必要がありますか? –

+1

私は彼が何らかの形でそれらを変えようと思っています。 – kindall

答えて

6

あなたは理解を使用することができます。

listz = [list(i) for i in zip(listx, listy)] 

や発電機の式:

listz = (list(i) for i in zip(listx, listy)) 
2

仲介リストの作成を避けるには、リストの理解を使用し、izipを使用します。

import itertools 

listz = [list(z) for z in itertools.izip(listx, listy)] 
+3

Python 3以降では、zip関数はジェネレータを返します。izipの必要はありません。 – utdemir

+0

はい、良い点。 – kindall

0
>>> from itertools import izip, imap 
>>> listx = [2, 4, 5, 9, 11] 
>>> listy = [3, 5, 9, 12, 14] 
>>> listz = list(imap(list, izip(listx, listy))) 
>>> listz 
[[2, 3], [4, 5], [5, 9], [9, 12], [11, 14]] 
5

使用mapをリストにタプルを変換します。

map(list, zip(listx, listy)) 
関連する問題