6.1 Die for
-Schleife
In Python werden Schleifen über Listenelemente oft mit der
for
-Schleife realisiert. Dies ist eine der am häufigsten verwendeten Ansätze zur Iteration über eine Liste,
die es ermöglicht, einen Codeblock für jedes Element in der Liste auszuführen.
Grundlagen der for
-Schleife
Die for
-Schleife in Python durchläuft jedes Element einer Liste und weist vorübergehend
den Wert des aktuellen Elements der Variable zu, die nach dem Schlüsselwort
for
angegeben ist. Beispiel:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
Eine Liste in umgekehrter Reihenfolge durchlaufen kann man mit Slices:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits[::-1]:
print(fruit)
6.2 Die for
-Schleife mit Indizes
Neben dem klassischen for
-Durchlauf einer Liste, kann man
die Liste auch mit der for
-Schleife in Kombination mit der Funktion range()
durchlaufen. Dies
ermöglicht es, nicht nur mit den Elementen selbst zu arbeiten, sondern auch mit deren Positionen, was
bei der Durchführung komplexerer Datenmanipulationen erforderlich sein kann.
Grundlagen der indexierten Iteration
Um eine Liste mit Zugriff auf den Index jedes Elements zu iterieren, kann man den folgenden Ansatz verwenden:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
print(f'Index: {i}, Element: {my_list[i]}')
Vorteile der Verwendung von Indizes
Die Verwendung von Indizes in Schleifen ermöglicht es nicht nur, auf jedes Element zuzugreifen, sondern auch Elemente in der Liste direkt zu ändern. Dies ist besonders nützlich, wenn man die Liste während der Iteration modifizieren muss.
Beispiel:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
my_list[i] = my_list[i] * 2
Beispiele für komplexe Manipulationen
Mit Indizes lassen sich leicht Algorithmen realisieren, die den gleichzeitigen Zugriff auf mehrere Listenelemente erfordern, z.B. um das aktuelle Element mit dem vorherigen oder dem nächsten zu vergleichen:
Beispiel:
my_list = [3, 5, 2, 9, 4]
for i in range(1, len(my_list)):
if my_list[i] > my_list[i - 1]:
print(f'{my_list[i]} ist größer als {my_list[i - 1]}')
6.3 Verwendung der enumerate()
-Funktion
In Python bietet die
Funktion enumerate()
eine bequeme
Möglichkeit, über die Elemente einer Liste zu iterieren und gleichzeitig Zugriff auf deren Indizes zu haben.
Dies ist besonders nützlich, wenn sowohl der Index als auch der Wert
des Listenelements im Rahmen der Schleife verarbeitet werden müssen.
Grundlagen der enumerate()
-Funktion
Die Funktion enumerate()
umschließt eine Liste in ein spezielles Objekt und
gibt einen Iterator zurück, der Tupel (Wertpaare) produziert, bestehend aus
dem Index und dem Wert des Elements:
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
print(f'Index: {index}, Element: {element}')
Jetzt hast du nicht nur das Element, sondern auch seinen Index.
Vorteile von enumerate()
Die Verwendung von enumerate()
macht den Code lesbarer und
verhindert die Notwendigkeit, manuell mit Indizes mit range(len(...))
zu hantieren. Dies erleichtert Manipulationen mit Listenelementen,
wie Änderungen, Zugriff und das Ausführen von bedingten Überprüfungen.
Beispiele für die Verwendung
enumerate()
eignet sich ideal für Aufgaben, bei denen
gleichzeitig Listenelemente geändert oder mit ihren Indizes verglichen werden müssen:
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
if index % 2 == 0:
print(f'Element {element} an geradem Index {index}')
6.4 Die while
-Schleife
Wir haben for
besprochen, und jetzt reden wir über die while
-Schleife. Diese Schleife kann ebenfalls nützlich sein, wenn man mit Listenelementen arbeitet.
Zur Erinnerung: die while
-Schleife beginnt ihre Arbeit mit der Überprüfung
einer Bedingung. Wenn die Bedingung wahr ist, wird der Schleifenkörper ausgeführt, und anschließend wird die Bedingung
erneut überprüft. Der Prozess wird wiederholt, bis die Bedingung
falsch wird.
Beispiel einer Iteration über eine Liste
Angenommen, du hast eine Liste mit Zahlen und möchtest sie durchlaufen, bis du auf einen bestimmten Wert stößt:
numbers = [1, 2, 3, 4, 5, -1, 6]
i = 0
while i < len(numbers) and numbers[i] != -1:
print(numbers[i])
i += 1
Nicht so anders als die for
-Schleife, oder? Aber es gibt Fälle, in denen wir keinen Index brauchen, um mit Listenelementen zu arbeiten. Angenommen, eine Liste enthält einige Aufgaben, die nach und nach aus der Liste genommen, ausgeführt und gelöscht werden müssen.
Dieser Code könnte schematisch so aussehen:
tasks = [1, 2, 3, 4, 5, -1, 6]
while len(tasks) > 0:
task = tasks.pop()
print(task)
GO TO FULL VERSION