gpt4 book ai didi

Python:将字典与列表中的列表合并为值并对它们进行计数

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:00 24 4
gpt4 key购买 nike

我正在尝试编写一个可以合并两个字典(文本文件!)的程序。这些词典由另一个程序从不同语料库中索引的名词和动词组成(然后放入文本文件中)。这是这些字典的形式:

dict1 = {'strawberry': [['eat', 1]], 'family-member': [['look up', 1]], 'mall': [['search', 1]]}
dict2 = {'strawberry': [['eat', 1]], 'family-member': [['lose', 1]], 'ovation': [['receive', 1]], 'mall': [['build', 1]]}

正如您所看到的,它们是带有键的字典,并且在值的列表中包含列表。现在我试图得到这样的输出:

finaldict = {'strawberry': [['eat', 2]], 'family-member': [['look up', 1]['lose',1]], 'mall': [['search', 1]['build', 1]], 'ovation': [['receive', 1]]

到目前为止,我已经能够像这样合并 dict1 和 dict2 (在字符串中):

{'strawberry': [['eat', 1]], 'family-member': [['look up', 1]], 'mall': [['search',
1]], 'strawberry': [['eat', 1]], 'family-member': [['lose', 1]], 'ovation':
[['receive', 1]], 'mall': [['build', 1]]}

我使用下一条语句将此字符串转换为字典: 最终字典 = eval(str1)它将整个内容变成字典,当我询问 Finaldict 的类型时,它也这么说,但它不会将 [['eat', 1]] 等语句视为值或任何内容。我需要这个,这样我就可以循环每个项目并计算它与哪个动词一起出现的次数。

最佳答案

from collections import Counter

dict1 = {'strawberry': [['eat', 1]], 'family-member': [['look up', 1]], 'mall': [['search', 1]]}
dict2 = {'strawberry': [['eat', 1]], 'family-member': [['lose', 1]], 'ovation': [['receive', 1]], 'mall': [['build', 1]]}
result = {k: Counter(dict(v)) for k, v in dict1.items()}
for k, v in dict2.items():
result.setdefault(k, Counter()).update(dict(v))

result = {k: [list(x) for x in v.items()] for k, v in result.items()}

关于Python:将字典与列表中的列表合并为值并对它们进行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com