Python:将一个列表插入到另一个列表中

Python:将一个列表插入到另一个列表中,python,list,Python,List,我想列举如下: matrix1 = [ [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12] ] matrix2 = [ [A, B, C, D], [E, F, G, H] ] 并将其组合为: new_matrix = [ [A, B, C, D], [E, F, G, H], [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12] ] 我似乎想不出一个好方法。Insert()将整个列表放入,生成列表列表列表。如有任何建议

我想列举如下:

matrix1 = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]

matrix2 = [
[A, B, C, D],
[E, F, G, H]
]
并将其组合为:

new_matrix = [
[A, B, C, D],
[E, F, G, H],
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]
我似乎想不出一个好方法。Insert()将整个列表放入,生成列表列表列表。如有任何建议,将不胜感激

只需添加它们

new_matrix = matrix1 + matrix2

使用
extend
它使用另一个扩展列表,而不是将其插入其中

>>> matrix2.extend(matrix1)

但是,这将使更改到位,而不是创建一个新的列表,这可能是您想要的。如果您希望创建一个新的,那么
+
就是您所需要的。

使用
+
添加它们:

In [59]: new_matrix = matrix2 + matrix1

In [60]: new_matrix
Out[60]: 
[['A', 'B', 'C', 'D'],
 ['E', 'F', 'G', 'H'],
 [1, 2, 3, 4],
 [5, 6, 7, 8],
 [9, 10, 11, 12]]

只需使用
+
操作符

>>> a = [[1],[2],[3]]
>>> b = [[4],[5],[6]]
>>> a+b
[[1], [2], [3], [4], [5], [6]]
>>> 

许多列表的通用解决方案:

要么:

new_matrix = list(itertools.chain(matrix1, matrix2, matrix3, ...)
或:

或使用列表列表:

new_matrix = list(itertools.chain(*matrices)
或:


+1,值得注意的是,虽然这是正确的,但OP显示了一个保存值的新变量,同时修改了列表。这显然取决于需要哪一个。@Lattyware谢谢你注意到这一点。我已经更新了答案,以明确这点。-1。是更好的解决方案。@Lattyware:如果想要一个
列表作为最终结果,请指定哪一部分是建议的?OP不是要一个iterable,是吗?@Lattyware:你更喜欢
list(itertools.chain(*matrices))
吗?是的,列表和任何其他的iterable一样,
itertools.chain()
是更好的解决方案。至于列出一个列表,正如你所说的,如果有必要的话,转换成一个列表是很容易的。@Lattyware:我重复这个问题,如果你想列一个列表,它说
itertools.chain
sum
更推荐
,这并不意味着前者是错的……我不觉得自己很愚蠢。谢谢:)
new_matrix = list(itertools.chain(*matrices)
new_matrix = sum(*matrices, default=[])