我正在使用生成器在列表中执行搜索,例如这个简单的示例:
>>> a = [1,2,3,4]
>>> (i for i, v in enumerate(a) if v == 4).next()
3
(只是为了举例说明,与上面的列表相比,我使用的列表要长得多,并且条目比 . 稍微复杂一些int
。我这样做是为了每次我都不会遍历整个列表搜索他们)
现在,如果我改为将其更改为i == 666
,它将返回 a StopIteration
,因为它在 . 中找不到任何666
条目a
。
我怎样才能让它返回None
呢?我当然可以将它包装在一个try ... except
子句中,但是有没有更 Pythonic 的方式来做到这一点?