首页 > 解决方案 > 如何更改数组的数据而不丢失python中的初始数据?

问题描述

我试图在下面执行这个 python 代码,我看到二维数组 "grid" 的数据在第四个打印语句之后发生了变化。我不明白为什么它会改变。有人可以帮帮我吗?

print(grid)
for i in range(len(grid)):
    grid[i]=list(grid[i])
print(grid)
set1=grid
print(grid)

for i in range(len(set1)):
    for j in range(len(set1[i])):
        set1[i][j]='O'
print(grid)

调试输出:

['.......', '...O...', '....O..', '.......', 'OO.....', 'OO.....']
[['.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', 'O', '.', '.', '.'], ['.', '.', '.', '.', 'O', '.', '.'], ['.', '.', '.', '.', '.', '.', '.'], ['O', 'O', '.', '.', '.', '.', '.'], ['O', 'O', '.', '.', '.', '.', '.']]
[['.', '.', '.', '.', '.', '.', '.'], ['.', '.', '.', 'O', '.', '.', '.'], ['.', '.', '.', '.', 'O', '.', '.'], ['.', '.', '.', '.', '.', '.', '.'], ['O', 'O', '.', '.', '.', '.', '.'], ['O', 'O', '.', '.', '.', '.', '.']]
[['O', 'O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O', 'O', 'O']]

标签: pythonarrayspython-3.xpython-2.7matrix

解决方案


推荐阅读