ホームページ > バックエンド開発 > Python チュートリアル > Python リストから重複した辞書を効率的に削除するにはどうすればよいですか?

Python リストから重複した辞書を効率的に削除するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-01 11:29:02
オリジナル
244 人が閲覧しました

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 は 1 つの辞書エントリのみに対応するため、この操作は効果的に重複を除外します。

一意の辞書の取得

一時辞書が設定されると、値 (一意の辞書を表します) は、values() メソッドを使用して取得できます。

Python 実装

Python 2.7:

<code class="python">{v['id']:v for v in L}.values()</code>
ログイン後にコピー

Python 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>
ログイン後にコピー

これらの簡潔なソリューションにより、一意のリストが生成されます。 dictionaries:

<code class="python">[
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30}
]</code>
ログイン後にコピー

このアプローチでは、一時辞書を利用して一意の辞書値を識別して抽出することで、重複を効率的に削除します。

以上がPython リストから重複した辞書を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート