2015-04-24 37 views
0

为什么使用dict()函数不会像使用嵌套字典一样为标准键创建副本:值对字典?创建嵌套字典的副本而不是参考

字典

A = {'key' : 'value'} 
B = dict(A) 
A['key'] = 10 
print A, B 

输出:

{'key': 10} {'key': 'value'} 

嵌套词典:

A = {'key' : {'subkey' : 'value'}} 
B = dict(A) 
A['key']['subkey'] = 10 
print A, B 

输出:

{'key': {'subkey': 10}} {'key': {'subkey': 10}} 

回答

2

您需要制作一个deepcopy

from copy import deepcopy 
A = {'key' : {'subkey' : 'value'}} 
B = deepcopy(A) 
A['key']['subkey'] = 10 
print(A, B) 
# {'key': {'subkey': 10}} {'key': {'subkey': 'value'}}