Mam listę obiektów i chciałbym znaleźć pierwszy, dla którego danej metody zwraca wartość true dla niektórych wartości wejściowych. Jest to stosunkowo łatwe do zrobienia w Pythonie:Wartość domyślna następnego elementu w iteratorze Pythona, jeśli iterator jest pusty?
pattern = next(p for p in pattern_list if p.method(input))
Jednak w mojej aplikacji jest powszechne, że nie ma takiego p
dla których p.method(input)
jest prawdą, a więc będzie podnieść StopIteration
wyjątek. Czy istnieje idiomatyczny sposób radzenia sobie z tym bez pisania bloku try/catch?
W szczególności wydaje się, że byłoby czystsze obsługiwać tę sprawę z czegoś jak if pattern is not None
warunkowy, więc zastanawiam się, czy istnieje sposób, aby rozwinąć moją definicję pattern
dostarczenie wartości None
gdy iterator jest pusty - lub jeśli istnieje bardziej Pythonowy sposób radzenia sobie z ogólnym problemem!
O Boże! Tak właśnie miałem nadzieję. Dziękuję Ci. –