我知道这个问题已经出现了很多变化,我已经讨论过了。具体来说,我所问的问题是here和here。我已尝试使用列出的所有解决方案,但对我来说确实不起作用,因为在我的情况下,我必须遍历其他字典,而且很多时候dict of dict中的键也将是相同的(在这种情况下,该值应成为一个列表。让我用一个示例说明:
假设entity_sentiment_dictionary
是我想从entity_sentiment_int_int_dict
附加到的字典
entity_sentiment_dictionary = { 'name': {'userid1': 0.0},
'Aditya': {'userid1': 0.0},
'Glen': {'5dad13fc54aeb500078637e0': -0.10000000149011612},
'Kenta': {'5dad13fc54aeb500078637e0': 0.0},
'Keita': {'5dd23a18c7949300087d8d88': 0.0},
'Ganchan': {'5dd23a18c7949300087d8d88': 0.0},
'Anna': {'5dd23a18c7949300087d8d88': 0.0},
'Joe': {'5dd23a18c7949300087d8d88': 0.8999999761581421}}
entity_sentiment_int_int_dict = { 'name': {'userid1': 0.1},
'Aditya': {'userid2': 0.3}}
当我更新时,结果应该是这样的:
entity_sentiment_dictionary = { 'name': {'userid1': [0.0,0.1]},
'Aditya': {'userid1': 0.0, 'userid2': 0.3},
'Glen': {'5dad13fc54aeb500078637e0': -0.10000000149011612},
'Kenta': {'5dad13fc54aeb500078637e0': 0.0},
'Keita': {'5dd23a18c7949300087d8d88': 0.0},
'Ganchan': {'5dd23a18c7949300087d8d88': 0.0},
'Anna': {'5dd23a18c7949300087d8d88': 0.0},
'Joe': {'5dd23a18c7949300087d8d88': 0.8999999761581421}}
这就是我在尝试了所有我能在网上找到的方法后,到目前为止所达到的目标:
for key in entity_sentiment_int_int_dict.keys():
if key in entity_sentiment_dictionary:
for k in entity_sentiment_dictionary.keys():
if key==k:
entity_sentiment_dictionary[key][k] = dict(entity_sentiment_int_int_dict[key])
else:
entity_sentiment_dictionary[key] = entity_sentiment_int_int_dict[key]
结果是:
{'name': {'usedid1': 0.0,'name': {'userid1': 0.1}},
'Aditya': {'userid1': 0.0, 'Aditya': {'userid2': 0.5} },
'Glen': {'5dad13fc54aeb500078637e0': -0.10000000149011612},
'Kenta': {'5dad13fc54aeb500078637e0': 0.0},
'Keita': {'5dd23a18c7949300087d8d88': 0.0},
'Ganchan': {'5dd23a18c7949300087d8d88': 0.0},
'Anna': {'5dd23a18c7949300087d8d88': 0.0},
'Joe': {'5dd23a18c7949300087d8d88': 0.8999999761581421}}
我觉得我快到了,需要对嵌套的for循环进行更改。我们非常感谢您的帮助,并建议您使用任何其他方法来获得预期的结果
这里有一个解决方案:
要复制的完整代码:
断言测试和实际输出:
这正是你所需要的。 可以进一步优化
输出
相关问题 更多 >
编程相关推荐