Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是我的问题。很抱歉之前的帖子根本不清楚。
所以这里有一个例子:
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给出相同的答案,但为什么会这样呢?在函数中它不应该给出相同的答案吗?
z
y
您正在设置y并z指向同一个对象。这一行:
y=z=x*0
创建一个新对象 x*0,然后设置 y 和 z 来引用它。因此,h并且g在您的函数中是同一个对象,并且更新会相互覆盖。
h
g
如果您想拥有两个独立的对象,请独立创建它们:
y=x*0 z=x*0