Python分配错误的字典值

1 python dictionary

在我的代码中:

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
Run Code Online (Sandbox Code Playgroud)

制作字典副本和更改值时遇到了一些麻烦.

当我想更改其中一个词典中的值时,原始值和副本的值都会更改.但我只想改变原件并将副本更改为其他内容.我似乎无法找到问题,尽管它是如此小而相对简单的代码.

Cat*_*lus 5

b = a不复制字典,它重新绑定b指向同一个对象a(所以当你改变时a,你也可以观察到效果b).请改用b = copy.copy(a)(copy模块).