Python 辞書の値に基づいてキーを効率的に検索する方法

DDD
リリース: 2024-10-17 15:53:51
オリジナル
506 人が閲覧しました

How to Efficiently Find a Key Based on Value in Python Dictionaries?

Reverse Lookups in Python Dictionaries

Finding a key corresponding to a specific value within a Python dictionary can be a common task. Addressing this efficiently goes beyond simply iterating over the entire dictionary.

Consider the following solution:

<code class="python">key = [key for key, value in dict_obj.items() if value == 'value'][0]</code>
ログイン後にコピー

This list comprehension loops through the dictionary, checking each key-value pair for a match with the desired value. However, it retrieves all matching keys and selects only the first one, which may not be desirable.

A more efficient approach is to use a generator expression:

<code class="python">key = next(key for key, value in dict_obj.items() if value == 'value')</code>
ログイン後にコピー

This generator expression iterates over the dictionary, yielding matching key-value pairs. The next() function returns the first matching key, stopping the iteration process prematurely.

It's worth noting that this approach raises a StopIteration exception if no matching key is found. Therefore, it's recommended to handle this case by surrounding the code in a try-except block:

<code class="python">try:
    key = next(key for key, value in dict_obj.items() if value == 'value')
except StopIteration:
    # Handle case where no matching key is found (e.g., raise ValueError)</code>
ログイン後にコピー

以上がPython 辞書の値に基づいてキーを効率的に検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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