我有一個字典列表,其中有一個屬性可能與列表中的其他字典重複或相似。我想使用相似性比較函數來唯一化這個列表。如果任何一個字典的值在某個關鍵詞「問候語」的某個百分比內相似,則只能保留一個。如何根據字典中某個值的百分比相似性來唯一區分一個字典列表
例如,在這份名單中,我想只有'你好世界的一個保留:
list = [{"greeting":"HELLO WORLD!", ...}, {"greeting":"Hello Mars", ...}, {"greeting":"Hello World!!!", ...}, {"greeting":"hello world", ...}]
uniquifying後,結果將是:
list = [{"greeting":"HELLO WORLD!", ...}, {"greeting":"Hello Mars", ...}
所有其他類型的字典類似應該從列表中刪除問候。 保留哪些類似的字典並不重要。
下面是Nadia Alramli功能:
def similar(seq1, seq2):
return difflib.SequenceMatcher(a=seq1.lower(), b=seq2.lower()).ratio() > 0.9
是否所有的字典都包含相同的密鑰? – Amr
是的,但是隻有問候鍵的值是用於唯一化的值。 – Chad
你想得到的結構看起來像什麼?你所有的字典都有一個單一的條目。這是典型的嗎? – robert