gpt4 book ai didi

python - 复制列表 : editing copy without changing original

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:10 28 4
gpt4 key购买 nike

我正在制作一个程序,需要可编辑的临时数组,该数组不会影响原始数组。但是,每当我运行该函数并测试它时,它都会像这样编辑实际数组:

x = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
y = copying(x)
y[0][0] = 1
print(x)
[[1, 0, 0], [0, 0, 0], [0, 0, 0]]

这是函数:

def copying(array):
temp = []

for i in array:
temp.append(i)
return temp

该函数适用于平面列表,但数组条目不起作用。我应该使用其他替代方案吗? (我尝试过 list() 和 copy())

最佳答案

您需要使用function deepcopy from copy module :

copy.deepcopy(x)

Return a deep copy of x.

这个函数正在复制所有内容,甚至是子元素(以及子子元素......你明白我认为)。您的简短示例已更正:

>>> from copy import deepcopy
>>> x = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> y = deepcopy(x)
>>> y[0][0] = 1
>>> x
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
>>> y
[[1, 0, 0], [0, 0, 0], [0, 0, 0]]

关于python - 复制列表 : editing copy without changing original,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23726876/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com