有没有方法将列表列表压缩?

11 投票
4 回答
11839 浏览
提问于 2025-04-16 22:49

好的,我有两个列表,它们看起来是这样的

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 个回答

2

使用列表推导式,并且用 izip 来避免创建一个中间的列表。

import itertools

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

使用 map 函数可以把元组转换成列表。

map(list, zip(listx, listy))
10

你可以使用一种叫做“推导式”的方法:

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

或者使用生成器表达式:

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

撰写回答