在Python中从两个列表创建(嵌套)列表

2024-05-15 00:39:39 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我想从两个数组创建一个数组,但我不想用append()或extend()创建这个新数组。

输入数组具有相同数量的行和列:

listone = [1,2,3]
listtwo = [4,5,6]

我们期望的结果:

mergedlist = [[1,4],[2,5],[3,6]]

不能通过

mergedlist = listone.append(listtwo) or mergedlist = listone.extend(listtwo)

我想得到

mergedlist = [[1,4],[2,5],[3,6]]

我怎样才能得到想要的输出?

这是一个简单的例子,真正的有14个文件,35行,61个数组。


一维的答案是可以的,但是当你有一个列表数组时

listone = [[1,2,3],[1,2,3],[1,2,3]]
listtwo = [4,5,6]

我想得到

result = [[1,2,3,4],[1,2,3,5],[1,2,3,6]]

当我使用merged=map(list,zip(listone,list2))时

My result is [[[1, 2, 3], 4], [[1, 2, 3], 5], [[1, 2, 3], 6]] that is Bad

Tags: or文件答案列表数量is数组result
2条回答

使用内置的zip函数。这正是你想要的。在python手册中:

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]

或者如果您想要一个列表列表,而不是一个元组列表,您可以使用zip来理解列表:

>>> zipped = [list(t) for t in zip(x, y)]
>>> zipped
[[1, 4], [2, 5], [3, 6]]

尝试:

listone = [1,2,3]
listtwo = [4,5,6]

merged = map(list, zip(listone, listtwo))

zip(listone, listtwo)将返回元组列表。因为您需要一个列表列表,所以需要将每个元组转换为一个列表。map(list, list_of_tuples)call正是这样做的。

相关问题 更多 >

    热门问题