J'ai réalisé une compréhension de liste en Python dans laquelle chaque itération peut lever une exception.
Par exemple si je l'ai fait :
eggs = (1,3,0,3,2)
[1/egg for egg in eggs]
J'obtiendrai un ZeroDivisionError
exception dans le 3ème élément.
Comment puis-je gérer cette exception et poursuivre l'exécution de la compréhension de la liste ?
La seule solution à laquelle je pense est d'utiliser une fonction d'aide :
def spam(egg):
try:
return 1/egg
except ZeroDivisionError:
# handle division by zero error
# leave empty for now
pass
Mais cela me semble un peu lourd.
Existe-t-il une meilleure façon de procéder en Python ?
Remarque : Il s'agit d'un exemple simple (voir " par exemple ") que j'ai inventé parce que mon exemple réel nécessite un certain contexte. Ce qui m'intéresse, ce n'est pas d'éviter les erreurs de division par zéro, mais de gérer les exceptions dans la compréhension d'une liste.