1. 程式人生 > 實用技巧 >python字典鍵或值去重

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

  如果對你有幫助的話可以一鍵三連~