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

Python: Inserting a list of lists into another list of lists

本问题已经有最佳答案,请猛点这里访问。

我想要以下列表:

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

matrix2 = [
[A, B, C, D],
[E, F, G, H]
]

并将它们组合成:

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

我似乎找不到一个好方法。insert()将整个列表放入,生成列表列表列表。如有任何建议,我们将不胜感激!


只需加上它们!

1
new_matrix = matrix1 + matrix2


+添加:

1
2
3
4
5
6
7
8
9
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]]


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

1
>>> matrix2.extend(matrix1)

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


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

要么:

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

或:

1
new_matrix = sum(matrix1, matrix2, matrix3, ..., default=[])

或者有一个列表:

1
new_matrix = list(itertools.chain(*matrices)

或:

1
new_matrix = sum(*matrices, default=[])


只需使用+操作符

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