/ * sample2指的是样本,但是当我用{}更新样本时,sample2仍然有旧的键和值* /
sample={1:'one',2:'two',3:'three'}
sample2=sample #reference
sample3=sample.copy() #using copy method
sample
{1: 'one', 2: 'two', 3: 'three'}
sample2
{1: 'one', 2: 'two', 3: 'three'}
sample3
{1: 'one', 2: 'two', 3: 'three'}
sample.popitem()
(1, 'one')
sample
{2: 'two', 3: 'three'}
sample2
{2: 'two', 3: 'three'}
sample3
{1: 'one', 2: 'two', 3: 'three'}
sample={}
sample2
{2: 'two', 3: 'three'}
/ *为什么sample2仍然具有这些值,尽管它是样本的参考。
答案 0 :(得分:1)
sample2
不是对sample
的引用!它是对同一个值(内存中的字典数据结构)的引用,也是名称/引用sample
。
在Python中,名称无法引用其他名称。名称指的是值。 始终
sample={}
将名称sample
重新分配到另一个值。 sample2
并不关心这一点。
答案 1 :(得分:0)
sample2
不是对sample
的引用,而是对sample
所具有的值的引用。当您执行sample = {}
时,旧值仍然存在,sample2
仍然引用它,但sample1
现在引用了{}
。