z=[0 for i in range(3)]
print(z) # [0,0,0]
x=[z for i in range(3)]
print(x) #[[0,0,0],[0,0,0],[0,0,0]]
x[1][1]=7
print(x) #[[0,7,0],[0,7,0],[0,7,0]]
有人可以解释这里发生了什么吗?
答案 0 :(得分:0)
x=[z for i in range(3)]
在这一行中,将z的引用作为列表x
中的每个元素重复
因此,当您修改一个子列表(或x
的元素)时,所有其他元素都将被修改,因为它们都只是引用。