7

我想列出以下清单:

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

4

5 回答 5

8

只需添加它们!

new_matrix = matrix1 + matrix2
于 2013-04-24T20:48:10.610 回答
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]]
于 2013-04-24T20:48:45.477 回答
2

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

>>> matrix2.extend(matrix1)

但是,这将进行适当的更改,而不是创建一个新列表,这可能是您想要的。如果您宁愿创建一个新的,那么+这就是您所需要的。

于 2013-04-24T20:48:13.363 回答
0

只需使用+运算符

>>> a = [[1],[2],[3]]
>>> b = [[4],[5],[6]]
>>> a+b
[[1], [2], [3], [4], [5], [6]]
>>> 
于 2013-04-24T20:48:50.613 回答
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=[])
于 2013-04-24T20:49:17.180 回答