你好我想从两个数组创建一个数组,但我不想用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,listtwo))
时My result is [[[1, 2, 3], 4], [[1, 2, 3], 5], [[1, 2, 3], 6]] that is Bad
答案 0 :(得分:6)
使用内置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]]
答案 1 :(得分:2)
尝试:
listone = [1,2,3]
listtwo = [4,5,6]
merged = map(list, zip(listone, listtwo))
zip(listone, listtwo)
将返回元组列表。由于您需要列表列表,因此需要将每个元组转换为列表。 map(list, list_of_tuples)
电话会做到这一点。