definieren sie Ihre Funktion, so dass es kehrt das Ergebnis der Umwandlung oder der Zahl Null
def safe_int(l, i):
try:
return int(l[i])
except ValueError:
return 0
(beachten sie, dass ich ausdrücklich i
an die Funktion übergeben habe becau se der Wert von i
in der Liste Verständnis in der Funktion aufgrund einer schlechten Design-Entscheidung in Python 2, das in Python 3) korrigiert wurde, und dann baut die new_list
new_list = [ safe_int(list_of_strings, i) for ...]
Ich muß sagen, dass Ihr Ansatz sichtbar ist nicht idiomatischen, würde ich
def safe_int(a_string):
try:
return int(a_string)
except ValueError:
return 0
new_list = [safe_int(s) for s in list_of_strings]
i definiert und initialisiert werden soll, bevor Sie hinzufügen 'i = 0 'nach der Listendefinition schreiben bevorzugen –
Sie eine Liste bauen (' new_list') ansammelt, was zurückgegeben 'safe_int (...)' - nun frage dich selbst "Was liefert die Funktion' safe_int() '?" Wenn ich mich frage, antworte ich "nichts!" oder, in Python ausgedrückt, gibt es 'None' zurück. Daher Ihr Ergebnis ... - Haben Sie andererseits versucht, den Inhalt von 'list_of_strings' nach dem Listenverständnis zu drucken? – gboffi
Vielen Dank gboffi, Du hast mir so sehr geholfen. Aber nur aus Neugier, wäre es möglich, die Ausgabe von safe_int() direkt einer anderen neuen Liste zuzuweisen –