У меня есть некоторое понимание списка в Python, в котором каждая итерация может генерировать исключение.
Например, , если у меня есть:
eggs = (1,3,0,3,2)
[1/egg for egg in eggs]
Я получу исключение ZeroDivisionError
в третьем элементе.
Как мне обработать это исключение и продолжить выполнение понимания списка?
Единственный способ, которым я могу думать, - это использовать вспомогательную функцию:
def spam(egg):
try:
return 1/egg
except ZeroDivisionError:
# handle division by zero error
# leave empty for now
pass
Но это выглядит немного громоздко для меня.
Есть ли лучший способ сделать это в Python?
Примечание: Это простой пример (см. « для примера » выше), который я придумал, потому что мой реальный пример требует некоторого контекста. Я не заинтересован в том, чтобы избегать деления на ноль ошибок, а в том, чтобы обрабатывать исключения в понимании списка.