Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将两个二维列表连接到一个新列表中_Python_List - Fatal编程技术网

Python 将两个二维列表连接到一个新列表中

Python 将两个二维列表连接到一个新列表中,python,list,Python,List,迪斯凯默:我是Python新手 我想通过组合2个现有的二维列表,在Python中创建一个连接的二维列表。我从两个列表开始: listA = [[a, b, c], [1, 2, 3]] listB = [[d, e, f], [4, 5, 6]] 我想创建一个新列表(同时保留listA和listB): 如果我尝试将它们添加为一维列表,我会得到: listA + listB result = [[a, b, c], [1, 2, 3], [d, e, f], [4, 5, 6]] 我也尝试过:

迪斯凯默:我是Python新手

我想通过组合2个现有的二维列表,在Python中创建一个连接的二维列表。我从两个列表开始:

listA = [[a, b, c], [1, 2, 3]]
listB = [[d, e, f], [4, 5, 6]]
我想创建一个新列表(同时保留listA和listB):

如果我尝试将它们添加为一维列表,我会得到:

listA + listB
result = [[a, b, c], [1, 2, 3], [d, e, f], [4, 5, 6]]
我也尝试过:

listC = listA
listC[0] += listB[0]
listC[1] += listB[1]

# This may be giving me the result I want, but it corrupts listA:

Before: listA = [[a, b, c], [1, 2, 3]
After:  listA = [[a, b, c, d, e, f], [1, 2, 3, 4, 5, 6]]
制作我想要的新数据列表的正确方法是什么

我还可以使用元组:

listC = [(a, 1), (b, 2), (c, 3), (d, 4), (e, 5), (f, 6)]
但是我也不知道这个方法


我目前正在使用Python2.7(raspberry pi运行raspbian Jessie),但必要时可以使用Python3.4

listC = [a+b for a,b in zip(listA, listB)]

创建一个新列表,例如使用列表理解

listC = [a+b for a,b in zip(listA, listB)]

有两种方法:

listC = [listA[0] + listB[0], listA[1] + listB[1]]

listC = [x + y for x, y in zip(listA, listB)]

可能是最简单的两种方法。有两种方法:

listC = [listA[0] + listB[0], listA[1] + listB[1]]

listC = [x + y for x, y in zip(listA, listB)]

可能是最简单的两种方法如果您想了解更多信息,这里有一种功能方法:

In [13]: from operator import add
In [14]: from itertools import starmap

In [15]: list(starmap(add, zip(listA, listB)))
Out[15]: [['a', 'b', 'c', 'd', 'e', 'f'], [1, 2, 3, 4, 5, 6]]

请注意,由于
starmap
返回迭代器,如果您不希望结果出现在列表中(可能只是想对结果进行迭代),因此不应在此处使用
list()

如果您想了解更多信息,请使用以下函数方法:

In [13]: from operator import add
In [14]: from itertools import starmap

In [15]: list(starmap(add, zip(listA, listB)))
Out[15]: [['a', 'b', 'c', 'd', 'e', 'f'], [1, 2, 3, 4, 5, 6]]

请注意,由于
starmap
如果您不希望结果出现在列表中(可能只是想对结果进行迭代),则返回迭代器,因此不应使用
list()
这里。

@downvoter如果我的答案有什么问题,我很高兴听到。@downvoter如果我的答案有什么问题,我很高兴听到。谢谢!事实上,我刚刚在我自己的列表(listA)+列表(listB)中发现它正是我所需要的。谢谢!事实上,我刚刚在我自己的列表(listA)+列表(listB)中发现它正是我所需要的。