Skip to main content
 首页 » 编程设计

Python分配错误的字典值

2025年05月04日12虾米哥

在我的代码中:

line_x = 10 
c = 'A' 
d = 'B' 
a = {} 
a['one']='|   |   |   |   |   |' 
a['two']='|   |   |   |   |   |' 
#untill thirteen 
 
vak = a.keys() 
b = a #copy the dictionary 
spot = a[vak[0]] 
spot2 = b[vak[0]] 
a[vak[0]] = spot[:(line_x)]+ d+ spot[(line_x+1):] 
b[vak[0]] = spot2[:(line_x)]+ c+ spot2[(line_x+1):] 
 
print a[vak[0]] #output_a = |   |   | A |   |   | 
print b[vak[0]] #output_b = |   |   | A |   |   | <- which should be a 'B' in the middle 

我在复制字典和更改值时遇到了一些问题。

当我想更改其中一本词典中的值时,原始值和副本的值都会发生变化。但我只想改变原件,让副本改变成别的东西。我似乎找不到问题,尽管它在这么小且相对简单的代码中。

请您参考如下方法:

b = a 不复制字典,它重新绑定(bind) b 指向与 a 相同的对象(所以当你改变a,你也可以在b上观察效果)。请改用 b = copy.copy(a)(copy 模块)。