Machen Sie jede n Iterationen, ohne Zählervariable zu verwenden

8

Ich habe eine iterierbare Liste von über 100 Elementen. Ich möchte nach jedem 10. iterierbaren Element etwas tun. Ich möchte keine Zählervariable verwenden. Ich suche nach einer Lösung, die keine Zählervariable enthält.

Momentan gefällt mir das:

%Vor%

Gibt es eine Möglichkeit, die Zählervariable wegzulassen?

    
PythonEnthusiast 19.02.2014, 11:42
quelle

4 Antworten

22
%Vor%

Verwenden Sie enumerate . Es ist dafür gebaut

    
Jakob Bowyer 19.02.2014, 11:45
quelle
5

Nur um eine andere Option zu zeigen ... hoffentlich habe ich Ihre Frage richtig verstanden ... Durch das Slicing erhalten Sie genau die Elemente der Liste, die Sie wollen, ohne jedes Element durchlaufen oder Aufzählungen oder Zähler behalten zu müssen. Siehe Python Slice-Notation erklären .

Wenn Sie mit dem ersten Element beginnen und jedes 10. Element von diesem Punkt abrufen möchten:

%Vor%

Wenn Sie auf dem 10. Element beginnen und jedes 10. Element von diesem Punkt abrufen möchten:

%Vor%

Beispiel für die zweite Option (Python 2):

%Vor%

Drucke:

%Vor%     
mdscruggs 19.02.2014 13:36
quelle
1
%Vor%     
Avinash Garg 19.02.2014 11:46
quelle
1

Eine andere Möglichkeit, das Problem anzugehen, besteht darin, das iterierbare Element in Ihre Blöcke aufzuteilen, bevor Sie mit der Verarbeitung beginnen.

Das grouper Rezept macht genau das:

%Vor%

Sie würden es so verwenden:

%Vor%

Jetzt einfach die by_twos Liste durchlaufen.

    
Burhan Khalid 19.02.2014 12:44
quelle

Tags und Links