我需要得到这样的东西: 2 个列表 A=[[1,2,3],[1,2,3],[1,2,3]] 和 B=[4,4,4] 被发送到输入输出是一个列表 C 等于 [[1,2,3,4],[1,2,3,4],[1,2,3,4]] 我创建了一个应该做的函数这个,但由于某种原因,它将所有内容存储在 MatrixA 列表中。因此,输出是 2 个相同的列表 MatrixA 和 MatrixC 以及一个普通的 MatrixB。如果我使用它的副本并且根本不触摸它,我只是无法理解为什么 MatrixA 会以某种方式发生变化。提前感谢您的帮助,很抱歉浪费时间,但我不知道该怎么办了
def merging_matrices(MatrixA,MatrixB):
MatrixC=MatrixA.copy()
for i in range(len(MatrixC)):
MatrixC[i].append(MatrixB[i])
return (MatrixC)
MatrixA=[[1,3,4],[0,3,9],[0,0,0]]
MatrixB=[3,2,1]
MatrixC=merging_matrices(MatrixA,MatrixB)
print(MatrixA)
print(MatrixB)
print(MatrixC)
例子:
标准输出:
您有一个错误,因为它
copy是一个肤浅的副本,即指向列表的链接。或者像这样:
同样,使用列表推导:
要制作列表的深层副本,请
deepcopy在模块中使用copy: