Я пытаюсь объединить использование генераторов с методом извлечения fuzzywuzzy, чтобы ускорить мой код, но изо всех сил стараюсь сохранить два верхних совпадения вместе с их результатами. Я мог сделать это раньше, когда я сохранял «результаты» в виде объекта List, и я не уверен, возможно ли / целесообразно ли выполнить те же операции с объектом-генератором.
from fuzzywuzzy import process
lookup_list = ['Pepsi Co','Steel United','ADIGAS','Consulting Group LLC','Company ABCDY','Blueberry Corp','FoodIndustries','PETCEO', 'OxChem']
vals = ['Pepsi', 'Steel Untd', 'ADIDAS','Consulting Group', 'Company ABC','Bluuberrie Cor']
results = (process.extract(val, lookup_list, scorer=fuzz.WRatio, limit=2) for val in vals)
best_match = None
best_score = 0
best_match_2 = None
best_score_2 = 0
for result in results:
best_score, best_match = (result[0][1], result[0][0]) if result[0][1] > best_score else (best_score, best_match)
best_score2, best_match2 = .....
Желаемый выход:
best_score
95
best_match
'Consulting Group LLC'
best_score2
92
best_match
'Company ABCDY'