「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python リスト内の重複する辞書を削除するにはどうすればよいですか?

Python リスト内の重複する辞書を削除するにはどうすればよいですか?

2024 年 11 月 8 日に公開
ブラウズ:420

How to Eliminate Duplicate Dictionaries in a Python List?

辞書のリストから重複を削除する

データ コレクション内の重複は、効率的なデータ処理の妨げになる可能性があります。 Python プログラミングでは、表形式のデータを保存するために辞書のリストがよく使用されます。ただし、このようなリストから重複した辞書を削除する必要がある場合があります。

次の辞書リストを検討してください:

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

目的は、重複を除いた一意の辞書のみを含むリストを取得することです。これを実現するには、次のような単純なアプローチを採用できます。

ID をキーとして一時辞書を作成する

  1. リスト内包表記を使用して一時辞書を作成します。各辞書のキーは、その 'id' フィールドです。
  2. このステップでは基本的に、各一意の 'id' 値を特定の値にマッピングします。 Dictionary.

値から一意の辞書を抽出

  1. values() メソッドを使用して一時辞書の値を取得します。
  2. 結果は、重複が削除された一意の辞書のリストです。

Python実装

このアプローチを Python で実装する方法は次のとおりです:

def remove_duplicates_from_dicts(dict_list):
    dict_id_mapping = {v['id']: v for v in dict_list}
    return list(dict_id_mapping.values())

sample_list = [
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 1, 'name': 'john', 'age': 34},
    {'id': 2, 'name': 'hanna', 'age': 30},
]
print(remove_duplicates_from_dicts(sample_list))

このコードは次の出力を生成します:

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

この戦略を採用すると、重複する辞書をリ​​ストから効果的に削除し、一意の要素のみを含む新しいリストを取得できます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3