为什么您可以间接修改lis

2024-09-29 19:29:20 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行下面的代码时,我得到的输出显示原始数组已经被修改,但是正如您所看到的,数组本身没有被更改

Arr = [["1","1","2"],["1","1","1"]]

def DoSomethingify(Arrs):
  for x in range(0, len(Arrs)):
    for y in range(0, len(Arrs[x])):
      if (Arrs[x][y] == "1"):
        Arrs[x][y] = "2"
      else:
        Arrs[x][y] = "1"
  print(Arrs)

for b in range(0, 9):
  DoSomethingify(Arr)

print(Arr)

输出:

[['2', '2', '1'], ['2', '2', '2']]
[['1', '1', '2'], ['1', '1', '1']]
[['2', '2', '1'], ['2', '2', '2']]
[['1', '1', '2'], ['1', '1', '1']]
[['2', '2', '1'], ['2', '2', '2']]
[['1', '1', '2'], ['1', '1', '1']]
[['2', '2', '1'], ['2', '2', '2']]
[['1', '1', '2'], ['1', '1', '1']]
[['2', '2', '1'], ['2', '2', '2']]
[['2', '2', '1'], ['2', '2', '2']]

Tags: 代码inforlenifdefrange数组
1条回答
网友
1楼 · 发布于 2024-09-29 19:29:20

数组本身已更改,您在以下两行更改了它:

Arrs[x][y] = "2"
Arrs[x][y] = "1"

变量Arrs仍然是原始数组,将其传递给函数并不会复制数组

相关问题 更多 >

    热门问题