オブジェクトのリストがあり、特定のメソッドが入力値に対して true を返す最初のオブジェクトを見つけたいと考えています。これは、Python では比較的簡単に実行できます。
pattern = next(p for p in pattern_list if p.method(input))
ただし、私のアプリケーションでは、どれが真であるかというようなものがないことが一般的であるp
ためp.method(input)
、これはStopIteration
例外を発生させます。try/catch ブロックを書かずにこれを処理する慣用的な方法はありますか?
特に、条件のようなものでそのケースを処理する方がきれいだと思われるので、イテレータが空のときに値を提供するif pattern is not None
ために私の定義を拡張する方法があるかどうか疑問に思っています-またはもっとある場合全体的な問題を処理する Pythonic の方法!pattern
None