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

vir*_*ets 6 python list nested-lists python-2.7

您好我想从两个Arrays创建一个Array,但我不想用append()或extend()创建这个新的Array.

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

listone = [1,2,3]
listtwo = [4,5,6]
Run Code Online (Sandbox Code Playgroud)

我们期望的结果:

mergedlist = [[1,4],[2,5],[3,6]]
Run Code Online (Sandbox Code Playgroud)

它不能通过

mergedlist = listone.append(listtwo) or mergedlist = listone.extend(listtwo)
Run Code Online (Sandbox Code Playgroud)

我想得到

mergedlist = [[1,4],[2,5],[3,6]]
Run Code Online (Sandbox Code Playgroud)

如何获得所需的输出?

这是一个简单的例子来理解,真正的一个有14个文件,35行和61个数组.


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

listone = [[1,2,3],[1,2,3],[1,2,3]]
listtwo = [4,5,6]
Run Code Online (Sandbox Code Playgroud)

我想得到

result = [[1,2,3,4],[1,2,3,5],[1,2,3,6]]
Run Code Online (Sandbox Code Playgroud)

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

My result is [[[1, 2, 3], 4], [[1, 2, 3], 5], [[1, 2, 3], 6]] that is Bad
Run Code Online (Sandbox Code Playgroud)

bri*_*rns 6

使用内置zip功能.这正是你想要的.从python手册:

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]
Run Code Online (Sandbox Code Playgroud)

或者,如果您需要列表而不是元组列表,则使用zip列表推导:

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