【发布时间】:2012-12-24 09:12:26
【问题描述】:
我有一个对象列表,我想找到第一个给定方法为某个输入值返回 true 的对象。这在 Python 中相对容易做到:
pattern = next(p for p in pattern_list if p.method(input))
但是,在我的应用程序中,通常不存在 p 为 true 的 p,因此这将引发 StopIteration 异常。有没有一种不写 try/catch 块的惯用方法来处理这个问题?
特别是,似乎用if pattern is not None 条件来处理这种情况会更干净,所以我想知道是否有办法扩展我对pattern 的定义以提供None 值当迭代器为空时——或者如果有更 Pythonic 的方式来处理整个问题!
【问题讨论】: