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

Python でイテラブルから最初に一致する項目を効率的に取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-10 19:16:10651ブラウズ

How to Efficiently Get the First Matching Item from an Iterable in Python?

反復可能から最初に一致する項目を取得する方法

多くのシナリオで、開発者は反復可能から最初の項目を取得する必要に遭遇します。特定の条件を満たすもの。 iterable 全体を反復処理することは可能ですが、このアプローチは大規模なデータセットでは非効率的になる可能性があります。

Python 2.6 および Python 3 の次の関数

Python 2.6 以降これらのバージョンでは、このタスクに洗練されたソリューションを提供する次の関数が導入されています。 next 関数を使用してジェネレータ式を反復処理することで、条件を指定できます:

next(x for x in the_iterable if condition(x))

一致する項目が見つからないときに StopIteration を発生させる場合は、次の構文を使用します:

next(x for x in the_iterable if x > 3)

代わりにデフォルト値を返すには、次を使用します。

next((x for x in the_iterable if x > 3), default_value)

Python のイテレータ2.5 以前

Python 2.5 以前のバージョンでは、イテレータの .next() メソッドを使用できます。ただし、条件を満たす項目がない場合、このメソッドは StopIteration を発生させます。少なくとも 1 つの一致する項目が存在することが確実な場合は、 .next():

the_iterable.next()

Python 2.5 以前の代替アプローチ

または、最初に提案したような関数を実装できます:

def first(the_iterable, condition=lambda x: True):
    for i in the_iterable:
        if condition(i):
            return i

を利用することもできます同じ結果を得るには、itertools モジュール、for...: Break ループ、または genexp を使用します。

以上がPython でイテラブルから最初に一致する項目を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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