ホームページ > バックエンド開発 > Python チュートリアル > Python リストで最初に一致する項目を効率的に見つけるにはどうすればよいですか?

Python リストで最初に一致する項目を効率的に見つけるにはどうすればよいですか?

DDD
リリース: 2024-12-07 19:26:20
オリジナル
223 人が閲覧しました

How to Efficiently Find the First Matching Item in a Python List?

リスト全体を処理せずに、条件に一致するリストから最初の項目を取得する

潜在的に広範なリストから特定の条件を満たす最初の要素を取得することは一般的ですタスク。あなたのようなカスタム関数でもこの目的を達成できますが、Python にはより効率的な代替関数が組み込まれている可能性があります。

Python 2.6 および Python 3:

これらのバージョンについては、次に組み込み関数を検討してください。これにより、次の 2 つのアプローチが得られます。

  1. Raising StopIteration:

    next(x for x in the_iterable if x > 3)
    ログイン後にコピー
  2. デフォルト値 (例: None) を返す:

    next((x for x in the_iterable if x > 3), default_value)
    ログイン後にコピー

Python <= 2.5:

注: 以下の解決策は次のとおりです。リスト全体を処理するため、Python 2.6 のメソッドよりも効率が低くなります。

  1. 次のメソッド:

    .next()
    ログイン後にコピー

    条件を満たす要素がない場合、StopIteration が直ちに発生します。

  2. カスタム関数 (初期値による)提案):

    def first(the_iterable, condition = lambda x: True):
        for i in the_iterable:
            if condition(i):
                return i
    ログイン後にコピー
  3. itertools:

    from itertools import ifilter, islice
    first_item = next(ifilter(lambda x: x > 3, the_iterable))</h3>
    <li>
    <p>ブレーク付き for ループ:</p>
    <pre class="brush:php;toolbar:false">for item in the_iterable:
        if condition(item):
            break
    first_item = item
    ログイン後にコピー
  4. 試す/除く反復の停止:

    try:
        first_item = next(x for x in the_iterable if condition(x))
    except StopIteration:
        return None
    ログイン後にコピー
  5. 以上がPython リストで最初に一致する項目を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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