这个问题很容易理解,这里是程序——
hisc = [1,2,3,4]
print("\n", hisc)
ohisc = hisc
hisc.append(5)
print("\nPreviously...", ohisc)
print("\nAnd now...", hisc)
input("\nETE")
当我运行它时,ohisc 得到 5。为什么 ohisc 会改变?我怎样才能阻止它改变? 如果这是显而易见的事情,我们深表歉意。
请您参考如下方法:
Python variables are references .因此,赋值复制的是引用,而不是变量的内容。
为了避免这种情况,您所要做的就是创建一个新对象:
ohisc = list(hisc)
这是使用 list constructor它根据给定的可迭代对象创建一个新列表。
或者你也可以从切片中赋值(创建一个新对象):
ohisc = hisc[:]
[] 是 general slice operator用于从给定集合中提取子集。我们只是省略了开始和结束位置(它们分别默认为集合的开始和结束)。
