在没有引用的情况下更新Python字典时出错

在没有引用的情况下更新Python字典时出错,python,python-2.7,Python,Python 2.7,我有以下词典: d = {'q0': {'VB': 2, 'NN': 8}, 'VB': {'DT': 5, 'NN': 3, 'IN': 2}} 我的目标是将上述字典中的值更新为概率。这计算为PVB | q0=动词计数/q0总计数 因此,给定字典中的PVB | q0=2/10。在对每个键进行类似的计算之后,我的新字典应该是这样的 d_new = {'q0': {'VB': 0.2, 'NN': 0.8}, 'VB': {'DT': 0.5, 'NN': 0.3, 'IN': 0.2}} 现

我有以下词典:

d = {'q0': {'VB': 2, 'NN': 8}, 'VB': {'DT': 5, 'NN': 3, 'IN': 2}}
我的目标是将上述字典中的值更新为概率。这计算为PVB | q0=动词计数/q0总计数 因此,给定字典中的PVB | q0=2/10。在对每个键进行类似的计算之后,我的新字典应该是这样的

d_new = {'q0': {'VB': 0.2, 'NN': 0.8}, 'VB': {'DT': 0.5, 'NN': 0.3, 'IN': 0.2}}
现在,我为实现上述功能而编写的代码如下:

d = {'q0': {'VB': 2, 'NN': 8}, 'VB': {'DT': 5, 'NN': 3, 'IN': 2}}
d_new = {}
d_new.update(d)
for key in d.keys():
    for i in d[key].keys():
        d_new[key][i] = d[key][i]/ float(sum(d[key].values()))
结果如下:

{'q0': {'VB': 0.2, 'NN': 0.9756097560975611}, 'VB': {'DT': 0.5, 'NN': 0.5454545454545454, 'IN': 0.6567164179104478}}
我假设原始的d也在更新。为了防止这种情况,我使用了更新。但它似乎不起作用。我怎样才能得到想要的结果

使用deepcopy


查看copy.deepcopy.非常感谢!我不知道存在的问题。我试过了,但在谷歌上找不到任何东西。
d_new = copy.deepcopy(d)