数组的Python副本也会更改普通数组
我有一个名为“arr”的2D数组,我复制它,但当我更改副本时,它也会更改原始数组。数组的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
代码: 输出:
[['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