Erhalte den Wert bei list / array index oder "None", wenn er außerhalb von Python liegt
Ist es sauber Weg, um den Wert auf eine Liste von index-oder None
wenn der index außerhalb Bereich oder in Python?
Die offensichtliche Art und Weise zu tun, dann wäre es dies:
if len(the_list) > i:
return the_list[i]
else:
return None
Jedoch die Ausführlichkeit verringert die Lesbarkeit des Codes. Gibt es eine saubere, einfache, one-liner, die stattdessen verwendet werden kann?
InformationsquelleAutor der Frage Chris Dutrow | 2012-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen:
Oder one-liner:
Beispiel:
InformationsquelleAutor der Antwort the wolf
Ich finde die Liste Scheiben gut für diese:
So, immer Zugriff auf x[i:i+1], wenn Sie möchten, dass x[i]. Sie erhalten eine Liste mit den erforderlichen element, wenn es existiert. Andernfalls erhalten Sie eine leere Liste.
InformationsquelleAutor der Antwort Hashken
InformationsquelleAutor der Antwort Emmett J. Butler
Für Ihre Zwecke können Sie ausschließen, dass der
else
Teil alsNone
Rückgabe standardmäßig, wenn eine bestimmte Bedingung nicht erfüllt ist.Ergebnis
InformationsquelleAutor der Antwort Akavall
Wenn Sie sind den Umgang mit kleinen Listen, die Sie nicht benötigen, fügen Sie eine if-Anweisung oder so etwas in der Art. Eine einfache Lösung ist es, verwandeln die Liste in einem dict. Dann können Sie
dict.get
:Können Sie sogar festlegen, einen anderen Standardwert als
None
mit dem zweiten argument zudict.get
. Verwenden Sie zum Beispieltable.get(i, 'unknown')
zurück'unknown'
wenn der index außerhalb des gültigen Bereichs.Beachten Sie, dass diese Methode funktioniert nicht mit negativen Indizes.
InformationsquelleAutor der Antwort dsprenkels