\

Pythonでは、辞書型のリストから重複する値を排除する方法があります。以下にその方法を示します。

まず、以下のような辞書型のリストがあるとします。

user_list = [
    {"id": 1, "name": "Alice", "age": 25},
    {"id": 2, "name": "Bob", "age": 30},
    {"id": 3, "name": "Charlie", "age": 35},
    {"id": 1, "name": "Alice", "age": 27},
    {"id": 4, "name": "David", "age": 40},
    {"id": 2, "name": "Bob", "age": 32},
]

このリストから重複する値を排除するためには、ジェネレータ式を使用して一意のキーの辞書を作成します。

unique_user_list = list({user["id"]: user for user in user_list}.values())
print(unique_user_list)

出力結果は以下のようになります。

[
    {'age': 27, 'id': 1, 'name': 'Alice'},
    {'age': 32, 'id': 2, 'name': 'Bob'},
    {'age': 35, 'id': 3, 'name': 'Charlie'},
    {'age': 40, 'id': 4, 'name': 'David'}
]

この方法では、idだけでなく任意のキーで重複を排除できます。そのため、以下のような関数を作成することも可能です。

def distinct_by_key(data: list[dict], key: str) -> list[dict]:
    return list({element[key]: element for element in data}.values())

unique_user_list = distinct_by_key(user_list, "id")
print(unique_user_list)

これで、Pythonの辞書型のリストから重複した値を排除する方法を学びました。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です