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

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

Barbara Streisand
リリース: 2024-12-11 06:07:11
オリジナル
820 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート