I am trying to find a best match for a name within a list of names.
I came up with the below code, which works, but I feel that the creation of the intermediate
ratios list is not the best solution performance-wise.
Could it be somehow replaced? Would
reduce be a good fit here (I have tried it, but could not get the index of best match and its value at the same time).
from fuzzywuzzy import fuzz name_to_match = 'john' names = ['mike', 'james', 'jon', 'jhn', 'jimmy', 'john'] ratios = [fuzz.ratio(name_to_match, name) for name in names] best_match = names[ratios.index(max(ratios))] print(best_match) # output is 'john'