这是我的问题。很抱歉上一篇文章根本不清楚。
下面是一个例子:
import numpy as np
x=np.arange(1,100,1)
y=z=x*0
def func(h,g):
for i in range(1,50):
h[i]=i+1
g[i]=i*2
func(z,y)
print z-y
在这个例子中
z
和y
给出了相同的答案,但为什么会这样呢?在函数中不应该给出相同的答案? 最佳答案
您将y
和z
设置为指向同一对象。这一行:
y=z=x*0
创建一个新对象x*0,然后设置y和z来引用它。因此,函数中的
h
和g
是同一个对象,并且更新会相互覆盖。如果要有两个独立的对象,请独立创建它们:
y=x*0
z=x*0
关于python - 迭代在函数中如何工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18214850/