我遇到了一段非常令人困惑的python代码如下:
V = 16*[0.1]
key = True
i = 0
while key:
delta = 0
V_origin = V
for s in range(16):
v = V[s]
V[s] = V_origin[s] * 2
delta = max(delta,abs(v - V[s]))
if delta < 0.01:
key = False
print(V, V_origin)
这段代码背后的逻辑是,我在for-for循环V和V_origin中有两个变量,其中V的值在for循环中改变。通过这种方式,当print (V,V_origin)
在一起时,我认为它们的值会有所不同,因为V_origin在for循环中没有变化。然而,事实证明它们在宏循环中的每个循环的最终打印中是相同的,这意味着V_origin在中间被改变。我想知道为什么?我在循环结构上遗漏了什么吗?