Python变量何时不应该改变

时间:2012-07-06 12:29:15

标签: python-3.x

我正在处理的代码是更改我的临时变量,我无法弄清楚如何阻止它。基本上,这就是问题所在:

def example(array):
    temp = array
    for i in range whatever:
        #change array

我需要更改数组,但保持温度不变。

2 个答案:

答案 0 :(得分:5)

该行

temp = array

不会复制array的内容 - 它只是将另一个名称绑定到同一个对象。如何实际复制对象取决于对象的类型。对于NumPy数组,您可以执行

temp = array.copy()

对于Python列表,您可以使用从Python 3.3开始的上述行;在eariler版本中,您可以使用

temp = array[:]

模块copy()中还有通用复制功能deepcopy()copy

答案 1 :(得分:1)

temp = array仅表示temparray变量内容的另一个名称。

通常,如果您需要副本,可以使用copy模块并执行:

import copy

temp = copy.copy(arr)  # or copy.deepcopy(arr), depending on the situation