潜在的に広範なリストから特定の条件を満たす最初の要素を取得することは一般的ですタスク。あなたのようなカスタム関数でもこの目的を達成できますが、Python にはより効率的な代替関数が組み込まれている可能性があります。
これらのバージョンについては、次に組み込み関数を検討してください。これにより、次の 2 つのアプローチが得られます。
Raising StopIteration:
next(x for x in the_iterable if x > 3)
デフォルト値 (例: None) を返す:
next((x for x in the_iterable if x > 3), default_value)
注: 以下の解決策は次のとおりです。リスト全体を処理するため、Python 2.6 のメソッドよりも効率が低くなります。
次のメソッド:
.next()
条件を満たす要素がない場合、StopIteration が直ちに発生します。
カスタム関数 (初期値による)提案):
def first(the_iterable, condition = lambda x: True): for i in the_iterable: if condition(i): return i
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
試す/除く反復の停止:
try: first_item = next(x for x in the_iterable if condition(x)) except StopIteration: return None
以上がPython リストで最初に一致する項目を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。