这是我的问题。很抱歉上一篇文章根本不清楚。
下面是一个例子:

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

在这个例子中zy给出了相同的答案,但为什么会这样呢?在函数中不应该给出相同的答案?

最佳答案

您将yz设置为指向同一对象。这一行:

y=z=x*0

创建一个新对象x*0,然后设置y和z来引用它。因此,函数中的hg是同一个对象,并且更新会相互覆盖。
如果要有两个独立的对象,请独立创建它们:
y=x*0
z=x*0

关于python - 迭代在函数中如何工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18214850/

10-11 17:33