從Python 中的清單中刪除重複的字典
在Python 中處理字典清單時,您可能會遇到刪除重複項的需要。無論重複項共享相同的鍵值對還是精確的鍵值順序,都需要一種有效的方法。
使用雜湊進行重複刪除
以下一行根據鍵值對有效刪除重複的字典:
[dict(t) for t in {tuple(d.items()) for d in l}]
此方法涉及將每行個字典轉換為其鍵值對的元組。由於元組可以進行雜湊處理,因此您可以利用集合資料結構來消除重複項。結果集包含唯一的元組,然後將其轉換回字典。
保留排序
如果字典的排序很重要,則上述方法還不夠。相反,可以採用更明確的方法:
l = [{'a': 123, 'b': 1234}, {'a': 3222, 'b': 1234}, {'a': 123, 'b': 1234}] seen = set() new_l = [] for d in l: t = tuple(d.items()) if t not in seen: seen.add(t) new_l.append(d) print(new_l)
此程式碼在新清單中累積非重複字典,同時保持其原始順序。它利用一組來追蹤遇到的元組以確保唯一性。
注意:
需要注意的是,在某些情況下,兩個字典具有相同的鍵和值可能不會產生相同的元組。當字典具有不同的鍵添加/刪除順序時,就會發生這種情況。如果這是您場景中的一個問題,請考慮在建立元組之前對每個字典的項目進行排序。
以上是如何有效地從Python清單中刪除重複的字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!