Wie bekomme ich das vorherige oder nächste Objekt mit diesem Code-Format?
%Vor%Ich weiß, wie man das macht mit:
%Vor% Sie können enumerate
verwenden:
Beachten Sie , dass Sie als effizientere Methode für den Zugriff auf next
-Elemente und die Ablehnung der Mehrfachindexierung iter()
Funktion zum Erstellen eines Iterator-Objekts aus Ihrer Liste (vom zweiten Element bis zum Ende) und Zugriff auf die nächsten Elemente in jeder Iteration mit next
:
Beachten Sie , dass wenn Sie das None
als zweites Argument nicht an next()
function übergeben, es einen StopIteration
Fehler erzeugt. Sie können es auch mit einem try-except
behandeln Aussage.
Auch für kurze Listen können Sie zip
function und für lange Listen itertools.izip()
function verwenden ( zip
in Python 3):
zip(l,l[1:])
gibt Ihnen die folgenden Paare von Elementen:
und in der Schleife können Sie i
als aktuelles Element verwenden, dann j
als nächstes Element oder j
als aktuelles verwenden, dann i
als letztes!:)
Je nachdem, was Sie für den Nachbareintrag verwenden, gibt es viele verschiedene Optionen. Wenn Sie beispielsweise nur Paare verarbeiten und die Liste nicht ändern möchten:
%Vor%Oder wenn Sie die vorherige Eingabe als Referenz beibehalten müssen:
%Vor% None
wird hier anstelle eines vorherigen Elements für das erste verwendet, ähnlich wie es für das nächste Element nach dem letzten in Kasras iter () - basierten Beispiel verwendet wird.
Die Schleife gibt den Index und das Objekt an, auf das das vorherige Objekt durch den (aktuellen Index - 1) zugegriffen werden kann, während der nächste durch (aktueller Index + 1)
Tags und Links python