У меня есть список объектов, и я бы хотел найти первый, для которого данный метод возвращает 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 способ справиться с общей проблемой!