1

我正在处理的代码正在更改我的临时变量,我不知道如何停止它。本质上,这就是问题所在:

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

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

4

2 回答 2

5

线

temp = array

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

temp = array.copy()

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

temp = array[:]

也有通用的复制功能copy()deepcopy()模块copy

于 2012-07-06T12:31:06.677 回答
1

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

一般来说,如果你想要一个副本,你可以使用该copy模块并执行以下操作:

import copy

temp = copy.copy(arr)  # or copy.deepcopy(arr), depending on the situation
于 2012-07-06T12:31:21.233 回答