与えられた条件:
[
{"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)