Любой способ, чтобы зайти в список списков? - PullRequest
5 голосов
/ 03 августа 2011

Хорошо, у меня есть два списка, которые выглядят так:

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

Прямо сейчас, когда я делаю zip, я получаю это

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

Спасибо!

Ответы [ 4 ]

6 голосов
/ 03 августа 2011

Вы можете использовать понимание:

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

или выражение генератора:

listz = (list(i) for i in zip(listx, listy))
5 голосов
/ 03 августа 2011

Используйте map для преобразования списков в списки.

map(list, zip(listx, listy))
2 голосов
/ 03 августа 2011

Используйте понимание списка и используйте izip, чтобы избежать создания списка посредников.

import itertools

listz = [list(z) for z in itertools.izip(listx, listy)]
0 голосов
/ 03 августа 2011
>>> 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]]
...