def add_column(matrix):
"""
>>> m = [[0, 0], [0, 0]]
>>> add_column(m)
[[0, 0, 0], [0, 0, 0]]
>>> n = [[3, 2], [5, 1], [4, 7]]
>>> add_column(n)
[[3, 2, 0], [5, 1, 0], [4, 7, 0]]
>>> n
[[3, 2], [5, 1], [4, 7]]
"""
new_matrix = matrix[:]
for row in new_matrix:
row += [0]
return new_matrix
返回原始矩阵的Doctests将返回新矩阵,我不知道如何在不编辑原始矩阵的情况下克隆该矩阵。
答案 0 :(得分:1)
您正在制作外部列表的副本,但每个内部列表仍然相同。您需要为row
使用不同的列表,而不是修改它:
new_matrix = []
for row in matrix:
new_matrix.append(row + [0])
简明版是:
new_matrix = [row + [0] for row in matrix]
答案 1 :(得分:1)