我正在处理的代码是更改我的临时变量,我无法弄清楚如何阻止它。基本上,这就是问题所在:
def example(array):
temp = array
for i in range whatever:
#change array
我需要更改数组,但保持温度不变。
答案 0 :(得分:5)
该行
temp = array
不会复制array
的内容 - 它只是将另一个名称绑定到同一个对象。如何实际复制对象取决于对象的类型。对于NumPy数组,您可以执行
temp = array.copy()
对于Python列表,您可以使用从Python 3.3开始的上述行;在eariler版本中,您可以使用
temp = array[:]
模块copy()
中还有通用复制功能deepcopy()
和copy
。
答案 1 :(得分:1)
temp = array
仅表示temp
是array
变量内容的另一个名称。
通常,如果您需要副本,可以使用copy
模块并执行:
import copy
temp = copy.copy(arr) # or copy.deepcopy(arr), depending on the situation