ホームページ  >  記事  >  バックエンド開発  >  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 は 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。