ホームページ >バックエンド開発 >Python チュートリアル >Python でキーと値のペアに基づいてリスト内の辞書を効率的に検索する方法

Python でキーと値のペアに基づいてリスト内の辞書を効率的に検索する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-12-11 06:07:11852ブラウズ

How to Efficiently Search for a Dictionary in a List Based on a Key-Value Pair in Python?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。