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