Vorheriges Objekt ohne len (Liste) abrufen

8

Wie bekomme ich das vorherige oder nächste Objekt mit diesem Code-Format?

%Vor%

Ich weiß, wie man das macht mit:

%Vor%     
Rade Tomović 21.05.2015, 10:20
quelle

3 Antworten

12

Sie können enumerate verwenden:

%Vor%

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 :

%Vor%

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):

%Vor%

zip(l,l[1:]) gibt Ihnen die folgenden Paare von Elementen:

%Vor%

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!:)

    
Kasramvd 21.05.2015, 10:22
quelle
1

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.

    
Yann Vernier 21.05.2015 10:40
quelle
0
%Vor%

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)

    
Arpit Goyal 21.05.2015 10:25
quelle

Tags und Links