首頁 >後端開發 >Python教學 >如何有效地從Python清單中刪除重複的字典?

如何有效地從Python清單中刪除重複的字典?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-26 13:30:10479瀏覽

How Can I Efficiently Remove Duplicate Dictionaries from a Python List?

從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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn