我需要通过“标题”键对字典中的条目进行分组,我按照下面描述的方式进行操作。
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?