für x in y, geben Sie Iteration in Python ein. Kann ich herausfinden, an welcher Iteration ich gerade arbeite?

8

Ich habe eine Frage über das Schleifenkonstrukt in Python in der Form: for x in y: In meinem Fall ist y eine Zeile, die aus einer Datei gelesen wird, und x sind getrennte Zeichen. Ich möchte nach jedem Zeichenpaar in der Ausgabe ein Leerzeichen setzen, zB: aa bb cc dd usw. Also würde ich gerne die aktuelle Iteration kennenlernen. Ist es möglich, oder muss ich einen traditionelleren C-Stil für eine Schleife mit einem Index verwenden?

    
foo 24.05.2010, 01:34
quelle

4 Antworten

21
%Vor%     
John La Rooy 24.05.2010, 01:34
quelle
1

Verwenden Sie enumerate :

%Vor%

Alternativ erstellen Sie einfach eine Variable und erhöhen sie innerhalb des Schleifenkörpers. Dies ist jedoch nicht ganz so "pythonisch".

%Vor%     
Amber 24.05.2010 01:35
quelle
0

Wenn Sie nach jedem Zeichenpaar ein Leerzeichen einfügen, möchten Sie vielleicht etwas mit Listenübersichten wie:

machen %Vor%

Ohne das zusätzliche Leerzeichen hinzuzufügen, wird das letzte Zeichen von Zeilen mit einer ungeraden Anzahl von Zeichen gelöscht. Mit dem angehängten Leerzeichen haben Zeilen mit einer ungeraden Anzahl von Zeichen am Ende einen zusätzlichen Platz.

(Vielleicht gibt es eine pythischere Methode als das, was ich getan habe.)

    
Isaac 24.05.2010 02:31
quelle
0

Ich kann nicht wirklich behaupten, dass dies besser ist als die enumerate -Methode, aber es ist weniger offensichtlich für jemanden, der aus einer C-Perspektive kommt, also dachte ich, ich würde es auf Vollständigkeit hinweisen:

> %Vor%

In Python wird es oft bevorzugt (oder zumindest ermutigt), etwas mit Generatoren zu tun oder solche Listen aufzulisten, anstatt sich auf enumerate zu verlassen.

Dies ist eine Variation der Methode grouper aus der Dokumentation des itertools-Moduls .

    
David Z 24.05.2010 02:33
quelle

Tags und Links