Jak mogę obsługiwać wyjątki w rozumieniu listy w Pythonie?
Mam pewne zrozumienie listy w Pythonie, w którym każda iteracja może rzucić wyjątek.
Na przykład, Jeżeli mam:
eggs = (1,3,0,3,2)
[1/egg for egg in eggs]
DostanęZeroDivisionError
wyjątek w trzecim elemencie.
Jak mogę obsłużyć ten wyjątek i kontynuować rozumienie listy?
Jedynym sposobem, w jaki mogę pomyśleć, jest użycie funkcji pomocniczej:
def spam(egg):
try:
return 1/egg
except ZeroDivisionError:
# handle division by zero error
# leave empty for now
pass
Ale dla mnie to wygląda trochę uciążliwie.
Czy jest lepszy sposób na zrobienie tego w Pythonie?
Uwaga: To prosty przykład (patrz „na przykład„powyżej”, które wymyśliłem, ponieważ mój prawdziwy przykład wymaga pewnego kontekstu, nie interesuje mnie unikanie dzielenia przez błędy zerowe, ale obsługa wyjątków w rozumieniu listy.