压缩到列表列表的任何方式?

时间:2011-08-03 17:19:56

标签: python arrays list 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]]

谢谢!

4 个答案:

答案 0 :(得分:6)

你可以使用理解:

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

或生成器表达式:

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

答案 1 :(得分:5)

使用map将元组转换为列表。

map(list, zip(listx, listy))

答案 2 :(得分:2)

使用列表推导,并使用izip来避免创建中间列表。

import itertools

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

答案 3 :(得分: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]]