【发布时间】:2019-07-14 03:18:39
【问题描述】:
我在使用以下代码 (Python) 时遇到了一些问题:
x = [0,0]
y = [[1,1],[2,2],[3,3]]
z = y
# z = [[1,1],[2,2],[3,3]]
print(y)
for i in range(0,len(z)):
if i == 0:
z[i] = x
else:
z[i] = y[i-1]
print(y)
y = z
print(y)
for i in range(0,len(z)):
if i == 0:
z[i] = x
else:
z[i] = y[i-1]
print(y)
我期望的输出是
[[1, 1], [2, 2], [3, 3]]
[[1, 1], [2, 2], [3, 3]]
[[0, 0], [1, 1], [2, 2]]
[[0, 0], [1, 1], [2, 2]]
但我得到的是
[[1, 1], [2, 2], [3, 3]]
[[0, 0], [0, 0], [0, 0]]
[[0, 0], [0, 0], [0, 0]]
[[0, 0], [0, 0], [0, 0]]
当我改用我为 z 注释掉的行时,我得到了
[[1, 1], [2, 2], [3, 3]]
[[1, 1], [2, 2], [3, 3]]
[[0, 0], [1, 1], [2, 2]]
[[0, 0], [0, 0], [0, 0]]
为什么输出的第 1&2 行和第 3&4 行不总是相同的?据我所知,我没有做任何事情来改变 y(除了 y=z),而且我不明白为什么在开头使用 z=y 或 z = [...] 会有所不同。
【问题讨论】:
标签: python list variable-assignment godot