Ohne es zu wissen habt ihr die ganze Zeit schon mit Klassen gearbeitet. In Python ist alles eine Klasse. Auch Datentypen wie
Schauen wir uns die Listen nochmal genau an.
Listen werden angelegt mit [] aneglegt. In die eckigen Klassen können Elemente in die Liste eingefügt werden.
liste_leer = []
liste_primzahlen = [2,3,5,7,11]
liste_zutaten = ["Eier", "Mehl", "Zucker"]
Mit der Methode append(...) können neue Elemente hinzugefügt werden
liste_primzahlen.append(13)
liste_zutaten.append("Salz")
Mit der for-Schleife kann auf jedes Element nacheinander zugegriffen werden
for primzahl in liste_primzahlen:
print(primzahl)
for zutat in liste_zutaten:
print(zutat)
Die Funktion len([1,2,3]) gibt die Länge einer Liste zurück.
print(len([]))
print(len([1,2,3,4,5]))
print(len(range(10,20,2)))
Jedes Element einer Liste bekommt einen Index. Dieser beginnt bei 0. Für die Liste ["Eier", "Mehl", "Zucker"] bekommt Eier den Index 0, Mehl den Index 1 und Zucker den Index 2.
Mit liste[index] kann auf das Element mit dem index einer Liste zugegriffen werden.
liste_zutaten = ["Eier", "Mehl", "Zucker"]
print(liste_zutaten[0])
print(liste_zutaten[1])
print(liste_zutaten[2])
# Fehler!
print(liste_zutaten[3])
Man kann auch die range-Funktion nutzen, um sich die Indizes generieren zu lassen.
liste_zutaten = ["Eier", "Mehl", "Zucker"]
for i in range(len(liste_zutaten)):
print("Index", i , liste_zutaten[i])
Elemente der Liste können über den Index geändert werden.
liste_zutaten = ["Eier", "Mehl", "Zucker"]
liste_zutaten[0] = "Bio-Eier"
liste_zutaten[1] = "Bio-Mehl"
liste_zutaten[2] = "Salz"
print(liste_zutaten)
Aufgabe
a) Erstellen Sie eine Liste mit 5 Vornamen aus dem Kurs.
b) Geben Sie das Elemente an Index 1 aus.
c) Geben Sie den Elemente der Liste mit der for-Schleife aus.
d) Geben Sie die Länge der Liste aus.
e) Geben Sie das letzte Element aus.
f) Ändern Sie das Element an Index 2 zu "Gerda"
g) Tauschen Sie die Elemente an Index 0 und 1
h) Löschen Sie das Element an index 3 (Methode der Klasse heißt remove(index))
Für schnelle: https://www.geeksforgeeks.org/python/python-list-slicing/
Lösung
#a) Erstellen Sie eine Liste mit 5 Vornamen aus dem Kurs.
namen = ["Tamilo","Ivo","Pepe","Noah","Luan"]
#b) Geben Sie das Elemente an Index 1 aus.
print(namen[1])
#c) Geben Sie den Elemente der Liste mit der for-Schleife aus.
for n in namen:
print(n)
#d) Geben Sie die Länge der Liste aus.
print(len(namen))
#e) Geben Sie das letzte Element aus.
print(namen[len(namen)-1])
print(namen[-1])
#f) Ändern Sie das Element an Index 2 zu "Gerda"
namen[2] = "Gerda"
#g) Tauschen Sie die Elemente an Index 0 und 1
temp = namen[0]
namen[0] = namen[1]
namen[1] = temp
# namen[0], namen[1] = namen[1], namen[0]
#h) Löschen Sie das Element an index 3 (Methode der Klasse heißt remove(index))
namen.remove(namen[3])
namen.sort()
print(namen)
Vervollständigt folgendes Klassendiagramm für Listen.
Hilfestellung: Schreibe in Thonny []. und drücke STRG + Leertaste
| Liste |
|---|
| # ... |
| + append(object): None |
| + remove(object): None |
| + sort(): None |
| # gibt das letzte Element aus und löscht es + pop(): Object |
| + init(): List |
Für das Sortierproblem existieren verschiedene Algorithmen.
Informieren Sie sich zur Funktionsweise folgende Sortieralgorithmen. Erklären Sie dem Kurs die Funktionsweise Ihres Algorithmus am Beispiel der Liste [5, 7, 1, 6, 4, 9, 8]
Optischer Vergleich
https://www.youtube.com/watch?v=kPRA0W1kECg
def selection_sort(liste):
n = len(liste)
# Durchlaufe alle Elemente der Liste
for i in range(n - 1):
# Angenommen, das erste Element ist das Minimum
min_index = i
# Finde den Index des kleinsten Elements im Rest der Liste
for j in range(i + 1, n):
if liste[j] < liste[min_index]:
min_index = j
# Tausche das gefundene Minimum mit dem ersten Element des unsortierten Bereichs
# Python ermöglicht einen direkten Tausch ohne temporäre Variable
liste[i], liste[min_index] = liste[min_index], liste[i]
return liste
# Beispielaufruf:
meine_liste = [64, 25, 12, 22, 11]
sortierte_liste = selection_sort(meine_liste)
print("Sortierte Liste:", sortierte_liste) # Ausgabe: Sortierte Liste: [11, 12, 22, 25, 64]
String: Wenn ihr schreibt "Hallo" wird der Konstruktor init() der Klasse aufgerufen.
| String |
|---|
| # ... |
| + capitalize(): str |
| + upper(): str |
| + lower(): str |
| # Gibt den index von 'text' zurück # -1 wnn text nicht vorkommt + index(text): int |