【Python】辞書から重複した要素を削除する

この記事では、Pythonの辞書から重複した要素を削除する方法について解説します。

具体的には、ループを使った方法、set()関数を使った方法、dict.fromkeys()メソッドを使った方法について説明します。

これらの方法を学ぶことで、重複した要素を効果的に削除することができます。

目次から探す

重複した要素を削除する方法

重複した要素を削除する方法はいくつかあります。

ここでは、Pythonの辞書から重複した要素を削除する方法について解説します。

方法1: ループを使って重複した要素を削除する

この方法では、辞書の要素を1つずつ取り出し、重複した要素を削除します。

具体的な手順は以下の通りです。

  1. 空の辞書を作成します。
  2. 元の辞書の要素を1つずつ取り出します。
  3. 取り出した要素が既に新しい辞書に存在するかどうかを確認します。
  4. 既に存在する場合は、その要素をスキップします。
  5. 存在しない場合は、新しい辞書に要素を追加します。

以下に、具体的なコード例を示します。

# 元の辞書
original_dict = {"apple": 1, "banana": 2, "orange": 3, "apple": 4}

# 空の辞書
new_dict = {}

# 元の辞書の要素を1つずつ取り出す
for key, value in original_dict.items():
    # 新しい辞書に要素が存在しない場合のみ追加する
    if key not in new_dict:
        new_dict[key] = value

print(new_dict)

実行結果は以下の通りです。

{'apple': 1, 'banana': 2, 'orange': 3}

方法2: set()関数を使って重複した要素を削除する

この方法では、set()関数を使って辞書のキーを取得し、重複した要素を削除します。

具体的な手順は以下の通りです。

  1. 辞書のキーをset()関数を使って取得します。
  2. set()関数によって重複した要素が削除されます。
  3. 新しい辞書を作成し、set()関数で取得したキーを元に元の辞書から値を取得して追加します。

以下に、具体的なコード例を示します。

# 元の辞書
original_dict = {"apple": 1, "banana": 2, "orange": 3, "apple": 4}

# 辞書のキーをset()関数で取得し、重複した要素を削除する
keys = set(original_dict.keys())

# 新しい辞書を作成し、元の辞書から値を取得して追加する
new_dict = {key: original_dict[key] for key in keys}

print(new_dict)

実行結果は以下の通りです。

{'banana': 2, 'orange': 3, 'apple': 4}

方法3: dict.fromkeys()メソッドを使って重複した要素を削除する

この方法では、dict.fromkeys()メソッドを使って辞書を作成し、重複した要素を削除します。

具体的な手順は以下の通りです。

  1. dict.fromkeys()メソッドを使って新しい辞書を作成します。
  2. 元の辞書のキーをdict.fromkeys()メソッドの引数に渡します。
  3. dict.fromkeys()メソッドによって重複した要素が削除されます。

以下に、具体的なコード例を示します。

# 元の辞書
original_dict = {"apple": 1, "banana": 2, "orange": 3, "apple": 4}

# 新しい辞書を作成し、元の辞書のキーを渡す
new_dict = dict.fromkeys(original_dict)

print(new_dict)
{'apple': None, 'banana': None, 'orange': None}

以上が、Pythonの辞書から重複した要素を削除する方法です。

それぞれの方法には特徴がありますので、使用する際には目的や要件に合わせて選択してください。

重複したキーが存在する場合、後の要素が優先されます。

以上の方法を比較し、選択する際には、要件や制約に応じて適切な方法を選ぶことが重要です。

目次から探す