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

时间:2013-04-24 20:46:45

标签: 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()将整个列表放入,从而生成列表列表。任何建议将不胜感激!

5 个答案:

答案 0 :(得分:6)

添加它们!

new_matrix = matrix1 + matrix2

答案 1 :(得分:3)

使用+添加它们:

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]]

答案 2 :(得分:2)

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

>>> matrix2.extend(matrix1)

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

答案 3 :(得分:0)

只需使用+运算符

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

答案 4 :(得分:0)

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

或者:

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

或者:

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

或列表清单:

new_matrix = list(itertools.chain(*matrices)

或者:

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