Direkt zum Inhalt

For-Schleifen in Python Tutorial

Lerne, wie du For-Schleifen in Python implementierst, um eine Sequenz oder die Zeilen und Spalten eines Pandas DataFrames zu iterieren.
Aktualisierte 16. Jan. 2025  · 5 Min. Lesezeit

Einführung

Wie andere Programmiersprachen auch, sind for Schleifen in Python ein wenig anders, da sie mehr wie ein Iterator und weniger wie ein for Schlüsselwort funktionieren. In Python gibt es nicht C wie die Syntax for(i=0; i, sondern du verwendest for in n.

Sie können verwendet werden, um über eine Folge von list, string, tuple, set, array, data frame zu iterieren.

Bei einer Liste von Elementen kann die for Schleife verwendet werden, um über jedes Element in dieser Liste zu iterieren und es auszuführen.

Um über eine Reihe von Elementen zu iterieren, verwenden For-Schleifen die Funktion range. Die Funktion range gibt eine neue Liste mit Zahlen aus dem angegebenen Bereich zurück, basierend auf der Länge der Folge.

Beim Iterieren über eine Folge kannst du auch den Index der Elemente in der Folge verwenden, aber der Schlüssel ist, zuerst die Länge der Liste zu berechnen und dann über die Reihe innerhalb des Bereichs dieser Länge zu iterieren.

Die for Schleifen in Python sind null-indiziert.

Lass uns schnell zum Teil der Umsetzung kommen.

Du kannst dir auch dieses Video anschauen, um eine schnelle Anleitung zu erhalten!

Python kostenlos lernen

Intermediate Python

BeginnerSkill Level
4
1.2M learners
Verbessere deine Data Science-Fähigkeiten, indem du mit Matplotlib Visualisierungen erstellst und DataFrames mit Pandas manipulierst.
See DetailsRight Arrow

Schleifen implementieren

Für den Anfang drucken wir Zahlen von 1-10 aus. Da die for Schleifen in Python mit einem Null-Index versehen sind, musst du in jeder Iteration einen hinzufügen, da sonst Werte von 0-9 ausgegeben werden.

for i in range(10):
    print (i+1)
1
2
3
4
5
6
7
8
9
10

Iterieren wir mit einer for-Schleife über die Zeichenkette eines Wortes Datacamp und geben nur den Buchstaben a aus.

for i in "Datacamp":
    if i == 'a':
        print (i)
a
a
a

Angenommen, du möchtest eine Liste von Elementen definieren und diese Elemente einzeln durchlaufen.

sequence = [1,2,8,100,200,'datacamp','tutorial']
for i in sequence:
    print (i)
1
2
8
100
200
datacamp
tutorial

Was aber, wenn du die Länge der Liste herausfinden und dann darüber iterieren willst? Du verwendest dafür die eingebaute Funktion len und wendest dann auf die Längenausgabe range an.

Denke daran, dass die range immer einen ganzzahligen Wert erwartet.

for i in range(len(sequence)):
    print (sequence[i])
1
2
8
100
200
datacamp
tutorial

Toll! Aber warum musst du die Funktion len verwenden, wenn du direkt for i in numbers verwenden kannst? Die Antwort ist einfach. Wenn du die Indizes der Sequenz ändern oder mit ihnen arbeiten möchtest, z. B. das Element einer bestehenden Liste, dann brauchst du range(len(sequence)).

for i in range(len(sequence)):
    element = sequence[i]
    if type(element) == int:
        sequence[i] = element + 4
sequence
[5, 6, 12, 104, 204, 'datacamp', 'tutorial']

Cool, nicht wahr? Du konntest die Elemente der Liste auf der Grundlage der Bedingung if ändern.

Schauen wir uns nun an, wie du ungerade Zahlen zwischen 1 und 20 drucken kannst. Um dies zu erreichen, musst du drei Dinge in der Funktion range definieren. Der Startpunkt, der Endpunkt und der Schrittwert (oder die Schritte), mit denen die Schleife über die Zahlen 1 - 20 hochgezählt wird.

for i in range(1,20,2):
    print (i)
1
3
5
7
9
11
13
15
17
19

Verschachtelte For-Schleife

for i in range(11):
    for j in range(i):
        print (i, end=' ')
    print()
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9
10 10 10 10 10 10 10 10 10 10

For-Schleife zur Iteration über Zeilen und Spalten eines DataFrames

import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
iris.head()
  sepal_length sepal_width petal_length petal_width Arten
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
len(iris)
150
for i in range(len(iris)):
    Class = iris.iloc[i,4]
    if Class == 'versicolor' and i < 70:
        print (Class)
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor
versicolor

Als Nächstes fügen wir zu jeder Zeile der Spalten sepal_length,sepal_width, petal_length und petal_width zwei hinzu.

columns = ['sepal_length','sepal_width','petal_length','petal_width']
for indices, row in iris.iterrows():
    for column in columns:
        iris.at[indices,column] = row[column] + 2
iris.head()
  sepal_length sepal_width petal_length petal_width Arten
0 7.1 5.5 3.4 2.2 setosa
1 6.9 5.0 3.4 2.2 setosa
2 6.7 5.2 3.3 2.2 setosa
3 6.6 5.1 3.5 2.2 setosa
4 7.0 5.6 3.4 2.2 setosa

Iterieren über eine Sequenz mit Lambda-Funktion

Die Lambda-Funktion von Python ist im Vergleich zur einfachen for Schleife schnell und leistungsstark. Sie ist weit verbreitet, vor allem im Umgang mit DataFrames. Du kannst deine Daten mit Hilfe der Funktion Lambda mit sehr wenig Code verarbeiten. Trotzdem ist es manchmal schwierig, sie zu verstehen.

x = [20, 30, 40, 50, 60]
y = []
for v in x :
    y += [v * 5]
y
[100, 150, 200, 250, 300]

Probieren wir das mal mit einer Lambda- und Map-Funktion aus.

Map nimmt eine Funktion auf, zum Beispiel eine Lambda-Funktion und eine Sequenz x, und gibt eine neue Sequenz zurück.

y = map(lambda x: x * 5,x)
y
<map at 0x11be7cc88>

Sie gibt eine Generatorfunktion zurück und um die Ausgabe des Generators zu erhalten, übergibst du die Ausgabe als Argument an list.

list(y)
[100, 150, 200, 250, 300]

Gehen wir einen Schritt zurück und betrachten wir die for Schleife und die lambda/map()-Kombination. Du wirst feststellen, dass der Unterschied zwischen den beiden durch das Hinzufügen von map, lambda und das Entfernen von "für" und "in" besteht. Und außerdem konntest du es in einer Zeile codieren.

Fazit

Herzlichen Glückwunsch zum Abschluss dieses grundlegenden Python For-Schleifen-Tutorials.

For-Schleifen sind das Rückgrat jeder Programmiersprache, und in Python ist die Verwendung von For-Schleifen überhaupt nicht schwer zu programmieren und ähnelt dem Schreiben eines englischen Satzes.

Wenn du mehr über for Schleifen in Python erfahren möchtest, besuche den Kurs Python Data Science Toolbox (Teil 2) von DataCamp.

Wenn du Fragen zu diesem Tutorial hast, kannst du sie gerne in den Kommentaren unten stellen.

Themen

Python-Kurse

Zertifizierung verfügbar

Kurs

Einführung in Python

4 hr
5.9M
Beherrsche die Grundlagen der Datenanalyse mit Python in nur vier Stunden. Dieser Online-Kurs führt in die Python-Schnittstelle ein und stellt beliebte Pakete vor.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow