L'esempio seguente è molto semplice. Voglio eseguire map() con una funzione che può generare eccezioni. Sarà più chiaro con un esempio:python map exception continua l'esecuzione del mapping
number_list = range(-2,8)
def one_divide_by(n):
return 1/n
try:
for number, divide in zip(number_list, map(one_divide_by, number_list)):
print("%d : %f" % (number, divide))
except ZeroDivisionError:
# Execution is stopped. I want to continue mapping
pass
Quando eseguo questo codice ottengo:
-2 : -0.500000
-1 : -1.000000
E 'a causa della 0 nella mia lista. Non voglio rimuovere questo 0 (perché in realtà non posso sapere prima se otterrò Exception). Sapete come continuare a mappare dopo l'eccezione?
se si sa quale valore di sostituire per 'infinita' quindi utilizzare 'provare: ritorno 1/n; tranne ZeroDivisionError: restituisci il tuo valore ' – Pynchia