Überspringe den ersten Eintrag in der for-Schleife in Python?
In python, Wie mache ich so etwas wie:
for car in cars:
# Skip first and last, do work for rest
InformationsquelleAutor der Frage Rolando | 2012-04-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den anderen Antworten nur für eine Sequenz.
Für alle durchsuchbar, überspringen Sie das erste Element:
Wenn Sie möchten, überspringen Sie die letzten, die man tun könnte:
InformationsquelleAutor der Antwort agf
Überspringen das erste element in Python können Sie einfach schreiben
oder überspringen, das Letzte elem
Können Sie dieses Konzept für jede Sequenz an.
InformationsquelleAutor der Antwort Abhijit
Hier ist ein allgemeiner generator-Funktion, überspringt eine beliebige Anzahl von Elementen vom Anfang und Ende einer iterierbar:
Beispiel:
InformationsquelleAutor der Antwort Sven Marnach
Der beste Weg, um ein überspringen der ersten Position(en):
islice in diesem Fall aufgerufen wird, mit einem start-Punkt 1, und Punkt aus Ende Keiner, das das Ende des iterator.
Springen zu können Elemente vom Ende einer iterierbar, müssen Sie wissen, seine Länge (immer möglich, für eine Liste, aber nicht unbedingt für alles, was Sie können Durchlaufen). zum Beispiel, islice(Autos, 1, len(PW)-1) überspringt die ersten und letzten Elemente in der PKW-Liste.
InformationsquelleAutor der Antwort Roee Shenberg
InformationsquelleAutor der Antwort KurzedMetal
Gut, Ihre syntax ist nicht wirklich Python zu beginnen.
Iterationen in Python sind über den Inhalt der Behälter (gut, technisch ist es über Iteratoren), mit einer syntax
for item in container
. In diesem Fall ist der container dercars
Liste, aber Sie möchten, überspringen Sie die ersten und letzten Elemente, das bedeutet, dasscars[1:-1]
(python-Listen haben die Basis null, negative zahlen zählen vom Ende, und:
ist slicing-syntax.Du willst also
InformationsquelleAutor der Antwort Andrew Jaffe
Basierend auf @SvenMarnach 's Antwort, aber etwas einfacher und ohne den Einsatz von deque
Beachten Sie auch, basierend auf meinen
timeit
Ergebnis, das ist geringfügig schneller als die deque LösungInformationsquelleAutor der Antwort Abhijit
Wenn
cars
ist eine Sequenz, die Sie tun könnenInformationsquelleAutor der Antwort Praveen Gollakota
Eine alternative Methode:
InformationsquelleAutor der Antwort Banana
Zu überspringen Sie die ersten Element auf einer
list
die Sie verwenden können:oder
next ()
:InformationsquelleAutor der Antwort Pedro Lobito
Den
more_itertools
Projekt erstreckt sichitertools.islice
zu handhaben negative Indizes.Beispiel
Daher können Sie aus gilt es slice-Elemente zwischen dem ersten und letzten Elemente einer iterierbar:
InformationsquelleAutor der Antwort pylang
Ich es so mache, obwohl es sieht aus wie ein hack, es funktioniert jedes mal:
InformationsquelleAutor der Antwort dmb