迭代如何在函数中起作用

时间:2013-08-13 16:52:00

标签: python function variables for-loop numpy

这是我的问题。很抱歉上一篇文章根本不清楚。

所以这是一个例子:

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给出了相同的答案,但为什么会这样?在函数中它不应该给出相同的答案吗?

1 个答案:

答案 0 :(得分:4)

您设置yz都指向同一个对象。这一行:

y=z=x*0

创建一个新对象x * 0,然后设置y和z来引用它。因此,函数中的hg是同一个对象,并且更新会相互覆盖。

如果您想拥有两个独立的对象,请单独创建它们:

y=x*0
z=x*0