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

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

Linda Hamilton
Linda Hamilton原創
2024-11-01 11:29:02144瀏覽

How to Efficiently Remove Duplicate Dictionaries from a Python List?

Python 清單中的獨特字典

字典清單在 Python 應用程式中很常見。然而,管理重複的字典可能具有挑戰性。本文討論如何有效地刪除重複項並取得唯一字典清單。

考慮一個字典列表:

<code class="python">L = [
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]</code>

解決問題

要對字典列表進行重複資料刪除,一種簡單的方法是迭代列表並將每個字典與其他字典進行比較。但是,對於大型列表,此過程的計算成本可能會很高。

使用臨時字典

更有效的解決方案利用臨時字典來處理重複資料刪除。字典的鍵設定為每個字典的 id 字段,值設定為字典本身。此操作有效地過濾掉重複項,因為每個唯一 id 只對應一個字典條目。

檢索唯一字典

填入暫存字典後,數值(其中代表唯一的字典)可以使用values()方法擷取。

Python實作

Python 2.7:

<code class="python">{v['id']:v for v in L}.values()</code>

Pyt 3:

<code class="python">list({v['id']:v for v in L}.values())</code>

Python 2.5/2.6:

<code class="python">dict((v['id'],v) for v in L).values()</code>
這些簡潔的解決方案產生了一系列獨特的解決方案字典:

<code class="python">[
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]</code>
這種方法透過利用臨時字典來識別和提取唯一的字典值,從而有效地刪除重複項。

以上是如何有效地從Python清單中刪除重複的字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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