【发布时间】:2020-05-08 12:29:41
【问题描述】:
我复制了一个名为“arr”的二维数组,但是当我更改副本时,它也会更改原始数组。
代码:
def play(arr):
for row in range(len(arr)):
for column in range(len(arr[row])):
if arr[row][column] == '':
tempArr = arr.copy()
tempArr[row][column] = 'a'
print(arr)
play([['', ''], ['', '']])
输出:
[['a' 'a']
['a' '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(['', ''])
输出:
['' '']
tempArr: ['' 'a']
对此我能做些什么?
感谢您的帮助!
【问题讨论】:
-
@AlexandreB。感谢您的评论,但它不是重复的,因为我已经在使用
arr.copy()而不是使用 numpy 数组
标签: python arrays python-3.x