Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组的Python副本也会更改普通数组_Python_Arrays_Python 3.x - Fatal编程技术网

数组的Python副本也会更改普通数组

数组的Python副本也会更改普通数组,python,arrays,python-3.x,Python,Arrays,Python 3.x,我有一个名为“arr”的2D数组,我复制它,但当我更改副本时,它也会更改原始数组。 代码: 输出: [['a' 'a'] ['a' 'a']] ['' ''] tempArr: ['' 'a'] 预期产出: [['' ''] ['' '']] 但如果在一维阵列中: def play(arr): for row in range(len(arr)): if arr[row] == '': tempArr = arr.cop

我有一个名为“arr”的2D数组,我复制它,但当我更改副本时,它也会更改原始数组。
代码:

输出:

[['a' 'a']
 ['a' 'a']]
['' '']
tempArr: ['' 'a']
预期产出:

[['' '']
 ['' '']]
但如果在一维阵列中:

def play(arr):

    for row in range(len(arr)):
            if arr[row] == '':
                tempArr = arr.copy()
                tempArr[row] = 'a'

    print(arr)
    print('Temp arr: ' + str(arr))

play(['', ''])
输出:

[['a' 'a']
 ['a' 'a']]
['' '']
tempArr: ['' 'a']
我能做些什么


谢谢你的帮助

Copy方法不递归复制列表中的嵌套结构。要实现这一点,您需要做一个deepcopy。在代码中尝试以下操作:

import copy
tempArr = copy.deepcopy(arr)

@AlexandreB可能复制。谢谢您的评论,但它不是重复的,因为我已经在使用
arr.copy()
并且没有使用numpy arrray