gpt4 book ai didi

python - 根据值在字典列表中查找相似项目

转载 作者:太空狗 更新时间:2023-10-30 00:47:19 25 4
gpt4 key购买 nike

我想根据存储在字典列表中的标签匹配来自 django 数据库的类似文章,如下所示:

myarticle = {'pk': 17, 'tags': [0, 1, 0, 1, 0]}
allarticles = [{'pk': 1, 'tags': [0, 0, 0, 1, 0]},
{'pk': 2, 'tags': [0, 1, 0, 1, 0]},
{'pk': 3, 'tags': [1, 1, 0, 0, 0]},
{'pk': 4, 'tags': [1, 0, 1, 0, 1]},
{'pk': 5, 'tags': [0, 0, 0, 0, 1]}]

根据输入的 myarticle.list 返回匹配标签数量排名的列表最方便的方法是什么?预期结果:

result = [2, 1, 3, 5, 4]

最佳答案

你可以使用sorted:

myarticle = {'pk': 17, 'tags': [0, 1, 0, 1, 0]}
allarticles = [{'pk': 1, 'tags': [0, 0, 0, 1, 0]},
{'pk': 2, 'tags': [0, 1, 0, 1, 0]},
{'pk': 3, 'tags': [1, 1, 0, 0, 0]},
{'pk': 4, 'tags': [1, 0, 1, 0, 1]},
{'pk': 5, 'tags': [0, 0, 0, 0, 1]}]
new_articles = sorted(allarticles, key=lambda x:sum(a == b for a, b in zip(myarticle['tags'], x['tags'])), reverse=True)
final_results = [i['pk'] for i in new_articles]

输出:

[2, 1, 3, 5, 4]

关于python - 根据值在字典列表中查找相似项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51541392/

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