这里发生了什么事?

时间:2018-12-31 08:40:31

标签: python list list-comprehension

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]]

有人可以解释这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

x=[z for i in range(3)]

在这一行中,将z的引用作为列表x中的每个元素重复

因此,当您修改一个子列表(或x的元素)时,所有其他元素都将被修改,因为它们都只是引用。