私はジェネレーターを使用して、次の簡単な例のようなリストで検索を実行しています。
>>> a = [1,2,3,4]
>>> (i for i, v in enumerate(a) if v == 4).next()
3
(例を少しフレームに入れるために、上記のリストに比べて非常に長いリストを使用していますint
。エントリはより少し複雑です。このようにすると、リスト全体が毎回トラバースされなくなります。それらを検索)
代わりにこれをに変更すると、にエントリが見つからないため、i == 666
が返されます。StopIteration
666
a
代わりにどうすれば返品できNone
ますか?もちろん、それをtry ... except
句で囲むこともできますが、それを行うためのよりPython的な方法はありますか?