CodeGym /Java Kurs /Python SELF DE /Schleifen über Listen

Schleifen über Listen

Python SELF DE
Level 7 , Lektion 6
Verfügbar

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)
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION