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