Wie Sie überprüfen, wenn Ende der Liste erreicht wurde?
Wenn Sie eine Liste, sagen a=[1,2,3], und ich möchte sehen if a[4] is null gibt es eine Möglichkeit, das zu tun, ohne eine Ausnahme oder Geltendmachung?
len wird Ihnen sagen, die Länge der Liste. Zitat des docs:
len(s)
Zurück die Länge (Anzahl der Elemente) eines Objekts. Das argument darf eine Sequenz (string, Tupel oder Liste) oder ein mapping (Wörterbuch).
Natürlich, wenn Sie möchten, um das Letzte element in einer list, tuple oder string, da die Indizes sind 0-basiert, und die Länge von einem Element ist das element Anzahl, a[len(a)-1] wird das Letzte Element.
Als ein beiseite, in der Regel, den richtigen Weg, um Zugriff auf das Letzte element in ein Objekt, das ermöglicht die numerische Indizierung (str, list, tuple, etc.) ist mit a[-1]. Offensichtlich, dass es sich nicht um len obwohl.
eine noch einfachere Möglichkeit zum Zugriff auf das Letzte element in eine Liste, ein Tupel oder ein string: [-1]
Hinweis: Ihre Frage fragt, wie Sie herausfinden würden, "wenn a[4] ist null". a[4] ist nicht etwas, das ist, warum Sie bekommen eine IndexError wenn Sie versuchen, es zu überprüfen.
a[4] in diesem Fall werfen wird IndexError Ausnahme, das ist nicht dasselbe wie der Vergleich der Wert von a auf index 4 zu None. Sie können Werte von None in eine Liste, und wenn Sie vergleichen die Werte von a dann, wenn Sie auf einen None, bedeutet es nicht, dass der index nicht in der Liste gefunden. Zum Beispiel:
>>> a=[1,None,2]>>> a[1]==NoneTrue>>> a[3]Traceback(most recent call last):File"<stdin>", line 1,in<module>IndexError: list index out of range
Da Listen zusammenhängend sind und indiziert sequentiell, den richtigen Weg zu prüfen, ob ein index in einer Liste zu vergleichen, um die len() einer Liste, sondern je nach der Anwendung, gibt es andere Möglichkeiten, um es, wie man eine IndexError oder iteration.
>>>for index, value in enumerate(a):...print index, value
...011None22
Könnten Sie eine Funktion schreiben, die verhält sich wie eine Art dict.get() für Wörterbücher:
def listget(list_, index, default=None):"""Return the item for index if index is in the range of the list_,
else default. If default is not given, it defaults to None, so that
this method never raises an IndexError."""if index >= len(list_)or index <-len(list_):return default
else:return list_[index]
Du bist nicht die Bereitstellung einer bestimmten use-case, aber in der Regel für eine Liste verwenden würde len zu sehen, wie viele Elemente in der Liste.
Den Allgemeinen Weg, um zu überprüfen, wenn Sie derzeit auf der Suche auf das element am Ende einer Liste (in jeder Sprache), ist der Vergleich mit dem aktuellen index, den Sie suchen, mit der Länge der Liste minus eins (da die Indizes bei 0 beginnen).
a[4] ist nicht wirklich etwas, weil es ihn nicht gibt - einige Sprachen zu implementieren, die als null (oder undefined (nicht definiert), sondern viele einfach eine Ausnahme, wenn Sie versuchen, darauf zuzugreifen, statt.
Hier die Logik ist, die Aussage, die ich verwenden, um zu überprüfen, ob das Ende der Liste erreicht wurde:
arr =[1,3,2,4,5]#counter for the array
arr_counter =0for ele in array:# check if end of list has been reachedif(arr_counter+1)!= len(arr):#put all your code herepass# increment the array counter
arr_counter +=1
len
wird Ihnen sagen, die Länge der Liste. Zitat des docs:Natürlich, wenn Sie möchten, um das Letzte element in einer
list
,tuple
oderstring
, da die Indizes sind 0-basiert, und die Länge von einem Element ist das element Anzahl,a[len(a)-1]
wird das Letzte Element.Als ein beiseite, in der Regel, den richtigen Weg, um Zugriff auf das Letzte element in ein Objekt, das ermöglicht die numerische Indizierung (str, list, tuple, etc.) ist mit
a[-1]
. Offensichtlich, dass es sich nicht umlen
obwohl.InformationsquelleAutor cwallenpoole
Verwenden
len
Hinweis: Ihre Frage fragt, wie Sie herausfinden würden, "wenn
a[4]
ist null".a[4]
ist nicht etwas, das ist, warum Sie bekommen eineIndexError
wenn Sie versuchen, es zu überprüfen.InformationsquelleAutor Steven Rumbalski
a[4]
in diesem Fall werfen wirdIndexError
Ausnahme, das ist nicht dasselbe wie der Vergleich der Wert vona
auf index 4 zuNone
. Sie können Werte vonNone
in eine Liste, und wenn Sie vergleichen die Werte vona
dann, wenn Sie auf einenNone
, bedeutet es nicht, dass der index nicht in der Liste gefunden. Zum Beispiel:Da Listen zusammenhängend sind und indiziert sequentiell, den richtigen Weg zu prüfen, ob ein index in einer Liste zu vergleichen, um die
len()
einer Liste, sondern je nach der Anwendung, gibt es andere Möglichkeiten, um es, wie man eineIndexError
oder iteration.InformationsquelleAutor Austin Marshall
Könnten Sie eine Funktion schreiben, die verhält sich wie eine Art dict.get() für Wörterbücher:
Beispiel:
So wird es immer einen Wert zurückgeben und Sie erhalten keine Ausnahmen.
InformationsquelleAutor tobigue
Hier ist ein Ansatz, bewarb ich mich in einem der Arcade-Herausforderungen aus Code-Kämpfe.
Grundsätzlich das Ende einer Liste wird definiert durch:
InformationsquelleAutor ivanleoncz
Du bist nicht die Bereitstellung einer bestimmten use-case, aber in der Regel für eine Liste verwenden würde
len
zu sehen, wie viele Elemente in der Liste.InformationsquelleAutor Matt Williamson
Den Allgemeinen Weg, um zu überprüfen, wenn Sie derzeit auf der Suche auf das element am Ende einer Liste (in jeder Sprache), ist der Vergleich mit dem aktuellen index, den Sie suchen, mit der Länge der Liste minus eins (da die Indizes bei 0 beginnen).
a[4]
ist nicht wirklich etwas, weil es ihn nicht gibt - einige Sprachen zu implementieren, die als null (oder undefined (nicht definiert), sondern viele einfach eine Ausnahme, wenn Sie versuchen, darauf zuzugreifen, statt.InformationsquelleAutor Anthony Grist
mit
a = [1,2,3]
:a[2:3] ist [3]
a[3:4] ist [ ]
So a[i:i+1] != [ ] sagt, wenn ein index von eine
ein[i:] macht das gleiche, aber ein[i:] erstellt eine weitere Liste, möglich sehr lange, während a[i:i+1] ist 1-element, falls nicht leer
InformationsquelleAutor eyquem
Hier die Logik ist, die Aussage, die ich verwenden, um zu überprüfen, ob das Ende der Liste erreicht wurde:
Hoffe, das hilft ! 🙂
InformationsquelleAutor Azizbro