我有一个对象列表,我想找到给定方法为某个输入值返回 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
,所以我想知道是否有一种方法可以扩展我的定义,pattern
以便在迭代器为空时提供一个None
值——或者是否有更多处理整体问题的 Pythonic 方式!