为什么使用list.copy()时列表列表是对对象的引用,但是一维列表只是一个副本?

时间:2019-02-08 23:52:12

标签: python list

这里是输出的屏幕截图。请解释为什么它会以这种方式工作,并向我提供有关如何制作列表列表副本的解决方案

the result of work

matrix = [['I','A','O','O','I'],['I','A','O','O','I'],['I','A','O','O','I'],['I','A','O','O','I'],['I','A','O','O','I']]

matrix_1d = ['I','A','O','O','I']

matrix2 = matrix.copy()
matrix2_1d = matrix_1d.copy()
def printMat(m):
    for i in range(len(m)):
        print (m[i])

matrix[0][0] = 'lol'
matrix2[0][1] = 'kek'

matrix_1d[0] = 'lol'
matrix2_1d[1] = 'kek'

printMat(matrix)
print("_")
printMat(matrix2)
print("_")
print(matrix_1d)
print("_")
print(matrix2_1d)

1 个答案:

答案 0 :(得分:0)

documentation明确指出:

  

返回列表的浅表副本。

您想要的是副本。