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

  如果对你有帮助的话可以一键三连~

原文地址:https://www.cnblogs.com/1314h/p/13581697.html