Pythonで辞書のリストを検索する 質問する

Pythonで辞書のリストを検索する 質問する

与えられた条件:

[
  {"name": "Tom", "age": 10},
  {"name": "Mark", "age": 5},
  {"name": "Pam", "age": 7}
]

name == "Pam"以下の対応する辞書を取得するには、どのように検索すればよいですか?

{"name": "Pam", "age": 7}

ベストアンサー1

あなたはジェネレータ式:

>>> dicts = [
...     { "name": "Tom", "age": 10 },
...     { "name": "Mark", "age": 5 },
...     { "name": "Pam", "age": 7 },
...     { "name": "Dick", "age": 12 }
... ]

>>> next(item for item in dicts if item["name"] == "Pam")
{'age': 7, 'name': 'Pam'}

アイテムが存在しない場合に対処する必要がある場合は、ユーザーが行う操作を実行できます。マット 彼のコメントで示唆された少し異なる API を使用してデフォルトを提供します。

next((item for item in dicts if item["name"] == "Pam"), None)

アイテム自体ではなく、アイテムのインデックスを見つけるには、列挙()リスト:

next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)

おすすめ記事