【发布时间】:2017-05-24 10:42:35
【问题描述】:
我想定义一个函数,其中 a list x 是它的输入变量,假设我想在执行函数后使输入变量 (x) 的值不变,我认为我应该做的是将输入变量 (x) 的值分配给另一个变量 (y) 并对这个新变量 (y) 进行计算并在最后返回 y 保持输入变量 x 不变(这是第二个函数代码)。
实现该代码给出的结果与我没有添加新变量 y 并对 y 执行计算一样。 x 的值发生了变化。 (它给出的结果与第一个函数相同)
我发现通过构造一个空列表 y 然后将 x 的条目一个接一个地添加到 y 然后对 y 执行操作来间接地将 x 的值分配给 y 可以解决问题(如在第三个函数中代码)。
我的问题是,python 为什么要这样做?当我将 x 的值分配给 y 并对 y 进行计算时,不应该是这样吗?我错过了什么?
def li(X):
X.append(1)
return(X)
def le(X):
Y=X
Y.append(1)
return(Y)
def lo(X):
Y=[]
for i in range(X):
Y.append(X[i])
Y.append(1)
return(X)
【问题讨论】:
标签: python function python-3.x