Не беспокойтесь, хороший способ выяснить новые вещи в Python, если ничего больше ...
ользую генераторы для выполнения поиска в списках, как этот простой пример:
>>> 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
пункт, но есть ли более питонический способ сделать это?