Python でのリスト内の辞書の検索
問題:
与えられた辞書のリスト、キーと値のペアに基づいて特定の辞書を効率的に検索して取得するにはどうすればよいでしょうか?この場合、キー「name」が「Pam」に設定されている辞書を検索します。
[ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 }, ]
解決策:
検索操作を実行するにはでは、Python の組み込みジェネレーター式を利用できます。
dicts = [ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 }, ] result = next(item for item in dicts if item["name"] == "Pam") print(result)
このコードは、リスト内の各辞書を反復処理します。ジェネレーター式と条件「item["name"] == "Pam"」に基づくフィルターを使用します。一致する辞書が見つかった場合、 next() 関数は最初に一致した項目を返します。
{'name': 'Pam', 'age': 7}
または、一致する項目が見つからない場合に対処する必要がある場合は、次のアプローチを使用できます。 :
next((item for item in dicts if item["name"] == "Pam"), None)
一致するアイテムが見つからない場合、このコードは None を返します。
アイテムではなく一致するアイテムのインデックスを見つけるにはそれ自体で、リストを列挙できます:
next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)
以上がPython でキーと値のペアに基づいてリスト内の辞書を効率的に検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。