」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何有效地從Python清單中刪除重複的字典?

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

發佈於2024-11-07
瀏覽:695

How to Efficiently Remove Duplicate Dictionaries from a Python List?

Python 清單中的獨特字典

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

考慮字典列表:

L = [
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]

解決問題

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

使用臨時字典

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

檢索唯一字典

填入臨時字典後,值(其中代表唯一的字典)可以使用values()方法檢索。

Python實作

Python 2.7:

{v['id']:v for v in L}.values()
Python 2.7:

{v['id']:v 代表L 中的v}.values()
{v['id']:v for v in L}.values()
Python 3:

list({v
dict((v['id'],v) for v in L).values()

Python 2.5/2.6:

{v['id']:v for v in L}.values()
dict((v['id' ],v) for v in L).values()

這些簡潔的解決方案產生了一系列獨特的字典:

How to Efficiently Remove Duplicate Dictionaries from a Python List?

[ {'id': 1, '姓名': '約翰', '年齡': 34}, {'id': 2, '姓名': '漢娜', '年齡': 30} ]

這種方法透過利用臨時字典來識別和提取唯一的字典值,從而有效地刪除重複項。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3