模糊匹配排序

2024-09-27 22:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我模糊地匹配了一系列电影标题,并将它们与匹配值一起编入另一个比较列表中:

>>> fuzzy_matches
[(['White Warrior (Alpha Video)'], ['White Warrior (Alpha Video)'], 100), (['White Warrior (Alpha Video)'], ['White Warrior (Digiview Entertainment)'], 63), (['White Warrior (Alpha Video)'], ['White Warrior (Platinum)'], 78), (['White Warrior (Alpha Video)'], ['White Warrior (Platinum) / David And Goliath'], 63), (['White Warrior (Alpha Video)'], ['White Warrior (Platinum) / Duel Of Champions'], 61)]...etc

我想将每个标题的匹配值相加,以便得到如下输出:

^{pr2}$

我已经尝试过几种使用切片的实现,但是很难看。在

(不是我的确切密码,但这是丑陋):

^{3}$

什么是实现这一目标的更有效的方法?在


Tags: andalpha标题列表电影videofuzzydavid
1条回答
网友
1楼 · 发布于 2024-09-27 22:25:40

您可以使用dict来存储所需的结果,然后在结尾处,如果您想要一个元组列表,可以使用dict.items()(python3.x)来获取结果。在

示例-

>>> fuzzy_matches = [(['White Warrior (Alpha Video)'], ['White Warrior (Alpha Video)'], 100), (['White Warrior (Alpha Video)'], ['White Warrior (Digiview Entertainment)'], 63), (['White Warrior (Alpha Video)'], ['White Warrior (Platinum)'], 78), (['White Warrior (Alpha Video)'], ['White Warrior (Platinum) / David And Goliath'], 63), (['White Warrior (Alpha Video)'], ['White Warrior (Platinum) / Du
el Of Champions'], 61)]
>>>
>>> fuzzy_dict = {}
>>> for i in fuzzy_matches:
...     if i[0][0] not in fuzzy_dict:
...             fuzzy_dict[i[0][0]] = 0
...     fuzzy_dict[i[0][0]] += i[2]
...
>>> fuzzy_dict
{'White Warrior (Alpha Video)': 365}
>>> list(fuzzy_dict.items())
[('White Warrior (Alpha Video)', 365)]

如果您使用的是python2.x,则不需要在结尾使用list(...)。在

相关问题 更多 >

    热门问题