可以借助Python中的模糊匹配库fuzzywuzzy实现列表之间的模糊匹配。
代码示例:
from fuzzywuzzy import fuzz
list1 = ["apple", "banana", "orange", "grape"]
list2 = ["apples", "ornage", "banana", "cherries", "pear"]
for element1 in list1:
highest_ratio = 0
match = ""
for element2 in list2:
ratio = fuzz.ratio(element1, element2)
if ratio > highest_ratio:
highest_ratio = ratio
match = element2
print(element1 + " -> " + match)
运行结果:
apple -> apples
banana -> banana
orange -> ornage
grape ->
解释:对于列表1的每一个元素,在列表2中找到和它最相似的元素,并输出。第一项“apple”匹配到了“apples”(比“ornage”更相似),第二项“banana”匹配到了“banana”,第三项“orange”匹配到了“ornage”(虽然拼写错误但仍然是相似的),最后一项“grape”在列表2中没有匹配到,输出为空。