python字典键或值去重
from fuzzywuzzy import fuzz, process a = {'嫦娥四号探测器是用哪个型号的火箭发射的?': ['长征3B'], '嫦娥四号探测器是在我国【】发射成功的。': ['西昌发射基地']} b = {'嫦娥四号探测器是在我国【 】发射成功的。': ['B、西昌发射基地'], '嫦娥四号探测器是用【 】火箭发射的。': ['B、长征3B']} res = {**a, **b} c = dict(**res) n = 0 print(c) print(len(res)) for k, v in res.items(): c.pop(k) if fuzz.partial_ratio(k, c) > 90: continue print(k, v) n+=1 print(n)
将多个字典合并到一个,但是变量a2和变量b1其实是相同的因为多了一个空格所以不会被合并,如果用
in有些局限性,in需要两个字符串完全相同才会返回True,所以需要模糊匹配去重,上面是代码,
可以根据自身要求修改匹配度,下面是执行结果
{'嫦娥四号探测器是用哪个型号的火箭发射的?': ['长征3B'], '嫦娥四号探测器是在我国【】发射成功的。': ['西昌发射基地'], '嫦娥四号探测器是在我国【 】发射成功的。': ['B、西昌发射基地'], '嫦娥四号探测器是用【 】火箭发射的。': ['B、长征3B']} 4 嫦娥四号探测器是用哪个型号的火箭发射的? ['长征3B'] 嫦娥四号探测器是在我国【 】发射成功的。 ['B、西昌发射基地'] 嫦娥四号探测器是用【 】火箭发射的。 ['B、长征3B'] 3
如果对你有帮助的话可以一键三连~