1

我需要通过“标题”键对字典中的条目进行分组,我按照下面描述的方式进行操作。

data = INPUT FROM QUESTION
sorted_data = {}

def sorted_words(title):
    return ' '.join(sorted(title.lower().split(' ')))

for x in data:
    sorted_data.setdefault(sorted_words(x['title']), []).append(x)

for x, v in sorted_data.items():
    max_1 = max(v, key=lambda x:x['power'])
    max_2 = max(v, key=lambda x:x['fire'])

    sr = 1 / max_1['power'] + 1 / max_2['fire']
    if sr < 1:
        percentage = '{:.1%}'.format(1 / sr - 1)
        date = datetime.fromtimestamp(max_1['date']).strftime('%A, %B %d, %Y %H:%M:%S')

输入:

[{'title': 'Boby - Jake', 'date': 1572258900, 'power': 1.87, 'Fire': 1.985}, {'title': 'Boby - Jake', 'date': 1572264300, 'power': 1.51, 'fire': 2.65}, {'title': 'Lego - Riko', 'date': 1572256800, 'power': 1.65, 'fire': 2.31}]

输出:

{'- boby jake': [{'title': 'Boby - Jake', 'date': 1572258900, 'power': 1.87, 'Fire': 1.985}, {'title': 'Boby - Jake', 'date': 1572264300, 'power': 1.51, 'fire': 2.65}], '- lego riko': [{'title': 'Lego - Riko', 'date': 1572256800, 'power': 1.65, 'fire': 2.31}]}

但正如你所理解的“Boby - Jake”~“Boby S. - Jake O”。所以我需要在 sorted_words 函数中使用 difflib。

import difflib

sim = difflib.SequenceMatcher(None,'Tobias Kamke - Momo Zver','Tobias K - Momo Z').ratio()
print(sim)

相似度应约为 70%

问题:如何用我当前的代码实现 difflib?

4

0 回答 0