当我将这两个值分配给另一个时,为什么这两个值不同?

Man*_*eep 2 python

我打印时,下面的代码给出了c和d的不同值

import csv

datafile = open('test1.csv', 'r')
datareader = csv.reader(datafile)
c = []
for row in datareader:
    c.append(row)

d = [[0]*2]*2
i=0

while i < 2:

    j=0

    while j < 2:

        d[i][j] = float(c[i][j])

        j=j+1
    i=i+1

print(c)
print(d)
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 7

这一行:

d = [[0]*2]*2
Run Code Online (Sandbox Code Playgroud)

不创建内部列表的副本,它只是创建对同一列表的多个引用.用明确的声明替换它:

d = [[0, 0], [0, 0]]
Run Code Online (Sandbox Code Playgroud)