我正在使用 Matching keys then changing the values of nested dictionaries 中的解决方案将 dict_1
的键和“子键”与 dict_2
匹配,然后更新 dict_1
中的值:>
# input:
dict_1 = {'741299': {'british': 0, 'fashion': 0, 'award': 0}, '741309': {'british': 0, 'fashion': 0, 'award': 0},
'780718': {'british': 0, 'fashion': 0, 'award': 0}, '780723': {'british': 0, 'fashion': 0, 'award': 0},
'783802': {'british': 0, 'fashion': 0, 'award': 0}, '783803': {'british': 0, 'fashion': 0, 'award': 0},
'807600': {'british': 0, 'fashion': 0, 'award': 0}, '807606': {'british': 0, 'fashion': 0, 'award': 0},
'809481': {'british': 0, 'fashion': 0, 'award': 0}, '809495': {'british': 0, 'fashion': 0, 'award': 0}}
dict_2 = {'741299': {}, '741309': {'british': 2}, '780718': {}, '780723': {},
'783802': {'british': 5, 'fashion': 5, 'award': 4}, '783803': {'award': 2},
'807600': {}, '807606': {}, '809481': {}, '809495': {}}
for k in dict_1:
dict_1[str(k)].update(dict_2[str(k)])
print(dict_1)
给定这个输入,输出应该是:
# expected output:
{'741299': {'british': 0, 'fashion': 0, 'award': 0}, '741309': {'british': 2, 'fashion': 0, 'award': 0},
'780718': {'british': 0, 'fashion': 0, 'award': 0}, '780723': {'british': 0, 'fashion': 0, 'award': 0},
'783802': {'british': 5, 'fashion': 5, 'award': 4}, '783803': {'british': 0, 'fashion': 0, 'award': 2},
'807600': {'british': 0, 'fashion': 0, 'award': 0}, '807606': {'british': 0, 'fashion': 0, 'award': 0},
'809481': {'british': 0, 'fashion': 0, 'award': 0}, '809495': {'british': 0, 'fashion': 0, 'award': 0}}
然而,这是我运行代码后得到的输出:
# Actual output:
{{'741299': {'british': 5, 'fashion': 5, 'award': 2}, '741309': {'british': 5, 'fashion': 5, 'award': 2},
'780718': {'british': 5, 'fashion': 5, 'award': 2}, '780723': {'british': 5, 'fashion': 5, 'award': 2},
'783802': {'british': 5, 'fashion': 5, 'award': 2}, '783803': {'british': 5, 'fashion': 5, 'award': 2},
'807600': {'british': 5, 'fashion': 5, 'award': 2}, '807606': {'british': 5, 'fashion': 5, 'award': 2},
'809481': {'british': 5, 'fashion': 5, 'award': 2}, '809495': {'british': 5, 'fashion': 5, 'award': 2}}
需要注意的一点是,我使用一个函数创建了 dict_1
和 dict_2
,该函数将创建一个给定单词列表的字典。本例中的dict_1
和dict_2
是通过函数创建的dict_1
和dict_2
的打印输出获得的。
我花了几个小时试图在我的函数和代码中找到问题,但我似乎无法修复输出。