gpt4 book ai didi

python - Python 中的删除方法

转载 作者:行者123 更新时间:2023-12-01 23:42:36 25 4
gpt4 key购买 nike

我有以下代码:

tree = {'nodes':[1,2,3],'root':[1]}
nodes = tree['nodes']
nodes.remove(2)
print(tree['nodes'])
print(nodes)

输出如下:

[1, 3]
[1, 3]

我的问题可能很愚蠢,但我不明白为什么 remove 方法导致 tree 变量也发生了变化?

我认为当我在上面的例子中创建一个像 nodes 这样的新变量时,应用到这个变量上的任何方法都只会影响这个变量。

从这个例子中,我可以得出结论,它也对 tree 变量产生了影响。

它是否与全局变量和局部变量有某种关系?

最佳答案

nodestree['nodes'] 都指的是同一个内存块。这意味着它们是相同的。通过更改其中任何一个,两者都会受到影响。

为避免这种情况,您可以使用copy

from copy import copy

nodes = copy(tree['nodes'])

在这种情况下,它们指的是不同的内存块,因此它们是完全分开的。

也看看这个link , 它可能对更好的线索有用。

关于python - Python 中的删除方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64785292/

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