Listen erstellen, ändern und organisieren
[] definiertbicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
Ausgabe:
['trek', 'cannondale', 'redline', 'specialized']
Mit Index in eckigen Klammern
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[0])
print(bicycles[0].title())
Ausgabe:
trek
Trek
Listen sind 0-indexiert — das erste Element hat Index 0!
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])
Ausgabe:
cannondale
specialized
-1 gibt das letzte Element zurück
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[-1])
print(bicycles[-2])
Ausgabe:
specialized
redline
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
message = f"Mein erstes Fahrrad war ein {bicycles[0].title()}."
print(message)
Ausgabe:
Mein erstes Fahrrad war ein Trek.
→ kapitel_3_aufgaben_3-1_3-3.ipynb
↓ Lösungen
names = ['gödel', 'escher', 'bach']
print(names[0].title())
print(names[1].title())
print(names[2].title())
Ausgabe:
Gödel
Escher
Bach
names = ['gödel', 'escher', 'bach']
print(f"Hallo, Herr {names[0].title()}! Wie geht es Ihnen?")
print(f"Hallo, Herr {names[1].title()}! Wie geht es Ihnen?")
print(f"Hallo, Herr {names[2].title()}! Wie geht es Ihnen?")
Ausgabe:
Hallo, Herr Gödel! Wie geht es Ihnen?
Hallo, Herr Escher! Wie geht es Ihnen?
Hallo, Herr Bach! Wie geht es Ihnen?
books = ['PAIP', 'SICP', 'GEB']
print(f"Ich würde gerne das Buch besitzen: '{books[0]}'.")
print(f"Ich würde gerne das Buch besitzen: '{books[1]}'.")
print(f"Ich würde gerne das Buch besitzen: '{books[2]}'.")
Ausgabe:
Ich würde gerne das Buch besitzen: 'PAIP'.
Ich würde gerne das Buch besitzen: 'SICP'.
Ich würde gerne das Buch besitzen: 'GEB'.
Die meisten Listen werden sich während der Programmausführung ändern
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles[0] = 'ducati'
print(motorcycles)
Ausgabe:
['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']
Fügt Element am Ende der Liste hinzu
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
motorcycles.append('ducati')
print(motorcycles)
Ausgabe:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha', 'suzuki', 'ducati']
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
Ausgabe:
['honda', 'yamaha', 'suzuki']
Fügt Element an beliebiger Position ein
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
Ausgabe:
['ducati', 'honda', 'yamaha', 'suzuki']
Löscht Element an bekannter Position
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
del motorcycles[0]
print(motorcycles)
Ausgabe:
['honda', 'yamaha', 'suzuki']
['yamaha', 'suzuki']
Entfernt und gibt letztes Element zurück
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
Ausgabe:
['honda', 'yamaha', 'suzuki']
['honda', 'yamaha']
suzuki
motorcycles = ['honda', 'yamaha', 'suzuki']
last_owned = motorcycles.pop()
print(f"Das letzte Motorrad, das ich hatte, war eine {last_owned.title()}.")
Ausgabe:
Das letzte Motorrad, das ich hatte, war eine Suzuki.
Entfernt Element an beliebiger Position
motorcycles = ['honda', 'yamaha', 'suzuki']
first_owned = motorcycles.pop(0)
print(f"Das erste Motorrad, das ich hatte, war eine {first_owned.title()}.")
Ausgabe:
Das erste Motorrad, das ich hatte, war eine Honda.
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)
Ausgabe:
['honda', 'yamaha', 'suzuki', 'ducati']
['honda', 'yamaha', 'suzuki']
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
print(f"\nEine {too_expensive.title()} ist mir zu teuer.")
Ausgabe:
['honda', 'yamaha', 'suzuki']
Eine Ducati ist mir zu teuer.
→ kapitel_3_aufgaben_3-4_3-7.ipynb
↓ Lösungen
abendessen = ["Helmut Schmidt", "Buddha", "Julius Caesar"]
print(f"Ich möchte dich gerne zum Essen einladen, {abendessen[0]}.")
print(f"Ich möchte dich gerne zum Essen einladen, {abendessen[1]}.")
print(f"Ich möchte dich gerne zum Essen einladen, {abendessen[2]}.")
Ausgabe:
Ich möchte dich gerne zum Essen einladen, Helmut Schmidt.
Ich möchte dich gerne zum Essen einladen, Buddha.
Ich möchte dich gerne zum Essen einladen, Julius Caesar.
abendessen = ["Helmut Schmidt", "Buddha", "Julius Caesar"]
print(f"{abendessen[1]} kann nicht kommen.")
abendessen[1] = "Napoleon"
print(f"Ich lade dich zum Essen ein, {abendessen[0]}.")
print(f"Ich lade dich zum Essen ein, {abendessen[1]}.")
print(f"Ich lade dich zum Essen ein, {abendessen[2]}.")
Ausgabe:
Buddha kann nicht kommen.
Ich lade dich zum Essen ein, Helmut Schmidt.
Ich lade dich zum Essen ein, Napoleon.
Ich lade dich zum Essen ein, Julius Caesar.
abendessen = ["Helmut Schmidt", "Napoleon", "Julius Caesar"]
print("Ich habe einen größeren Tisch gefunden!")
abendessen.insert(0, "Hindenburg")
abendessen.insert(2, "Kennedy")
abendessen.append("Lincoln")
print(f"Ich lade dich zum Essen ein, {abendessen[0]}.")
print(f"Ich lade dich zum Essen ein, {abendessen[1]}.")
print(f"Ich lade dich zum Essen ein, {abendessen[2]}.")
print(f"Ich lade dich zum Essen ein, {abendessen[3]}.")
print(f"Ich lade dich zum Essen ein, {abendessen[4]}.")
print(f"Ich lade dich zum Essen ein, {abendessen[5]}.")
Ausgabe:
Ich habe einen größeren Tisch gefunden!
Ich lade dich zum Essen ein, Hindenburg.
Ich lade dich zum Essen ein, Helmut Schmidt.
Ich lade dich zum Essen ein, Kennedy.
Ich lade dich zum Essen ein, Napoleon.
Ich lade dich zum Essen ein, Julius Caesar.
Ich lade dich zum Essen ein, Lincoln.
abendessen = ['Hindenburg', 'Helmut Schmidt', 'Kennedy',
'Napoleon', 'Julius Caesar', 'Lincoln']
print("Ich kann leider nur zwei Personen einladen.")
print(f"Es tut mir leid, {abendessen.pop()}, ich kann dich nicht einladen.")
print(f"Es tut mir leid, {abendessen.pop()}, ich kann dich nicht einladen.")
print(f"Es tut mir leid, {abendessen.pop()}, ich kann dich nicht einladen.")
print(f"Es tut mir leid, {abendessen.pop()}, ich kann dich nicht einladen.")
print(f"{abendessen[0]}, du bist noch eingeladen.")
print(f"{abendessen[1]}, du bist noch eingeladen.")
del abendessen[0]
del abendessen[0]
print(abendessen)
Ausgabe:
Ich kann leider nur zwei Personen einladen.
Es tut mir leid, Lincoln, ich kann dich nicht einladen.
Es tut mir leid, Julius Caesar, ich kann dich nicht einladen.
Es tut mir leid, Napoleon, ich kann dich nicht einladen.
Es tut mir leid, Kennedy, ich kann dich nicht einladen.
Hindenburg, du bist noch eingeladen.
Helmut Schmidt, du bist noch eingeladen.
[]
Oft möchte man Listen in einer bestimmten Reihenfolge präsentieren
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
Ausgabe:
['audi', 'bmw', 'subaru', 'toyota']
Die Sortierung ist permanent!
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort(reverse=True)
print(cars)
Ausgabe:
['toyota', 'subaru', 'bmw', 'audi']
cars = ['bmw', 'audi', 'toyota', 'subaru']
print("Here is the original list:")
print(cars)
print("\nHere is the sorted list:")
print(sorted(cars))
print("\nHere is the original list again:")
print(cars)
Here is the original list:
['bmw', 'audi', 'toyota', 'subaru']
Here is the sorted list:
['audi', 'bmw', 'subaru', 'toyota']
Here is the original list again:
['bmw', 'audi', 'toyota', 'subaru']
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
Ausgabe:
['bmw', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bmw']
Kehrt die Reihenfolge um (nicht alphabetisch!)
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(len(cars))
Ausgabe:
4
Nützlich für Schleifen und Bedingungen
→ kapitel_3_aufgaben_3-8_3-10.ipynb
↓ Lösungen
orte = ['Tokyo', 'New York', 'Paris', 'Sydney', 'Cairo']
print("Original:", orte)
print("Sortiert:", sorted(orte))
print("Original:", orte)
print("Rückwärts:", sorted(orte, reverse=True))
print("Original:", orte)
orte.reverse()
print("Nach reverse():", orte)
orte.reverse()
print("Wieder original:", orte)
orte.sort()
print("Permanent sortiert:", orte)
orte.sort(reverse=True)
print("Rückwärts sortiert:", orte)
Ausgabe:
Original: ['Tokyo', 'New York', 'Paris', 'Sydney', 'Cairo']
Sortiert: ['Cairo', 'New York', 'Paris', 'Sydney', 'Tokyo']
Original: ['Tokyo', 'New York', 'Paris', 'Sydney', 'Cairo']
Rückwärts: ['Tokyo', 'Sydney', 'Paris', 'New York', 'Cairo']
Original: ['Tokyo', 'New York', 'Paris', 'Sydney', 'Cairo']
Nach reverse(): ['Cairo', 'Sydney', 'Paris', 'New York', 'Tokyo']
Wieder original: ['Tokyo', 'New York', 'Paris', 'Sydney', 'Cairo']
Permanent sortiert: ['Cairo', 'New York', 'Paris', 'Sydney', 'Tokyo']
Rückwärts sortiert: ['Tokyo', 'Sydney', 'Paris', 'New York', 'Cairo']
abendessen = ["Helmut Schmidt", "Buddha", "Julius Caesar"]
print(f"Ich lade {len(abendessen)} Personen zum Essen ein.")
Ausgabe:
Ich lade 3 Personen zum Essen ein.
sprachen = ['Python', 'JavaScript', 'C++', 'Ruby', 'Go']
print(f"Anzahl: {len(sprachen)}")
print(f"Erste: {sprachen[0]}")
print(f"Letzte: {sprachen[-1]}")
sprachen.append('Rust')
sprachen.insert(1, 'Java')
entfernt = sprachen.pop()
print(f"Entfernt: {entfernt}")
del sprachen[0]
sprachen.remove('C++')
sprachen.sort()
print(f"Sortiert: {sprachen}")
Ausgabe:
Anzahl: 5
Erste: Python
Letzte: Go
Entfernt: Rust
Sortiert: ['Go', 'Java', 'JavaScript', 'Ruby']
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[3]) # IndexError!
Fehler:
IndexError: list index out of range
Tipp: Verwende -1 für das letzte Element!
→ kapitel_3_aufgaben_3-11.ipynb
↓ Lösungen
# Absichtlicher IndexError
motorcycles = ['honda', 'yamaha', 'suzuki']
# print(motorcycles[3]) # IndexError!
# Korrigiert - letztes Element
print(motorcycles[-1]) # Funktioniert immer
# oder
print(motorcycles[2]) # Bei bekannter Länge
Ausgabe:
suzuki
suzuki
liste = ['a', 'b', 'c']
liste[0],
liste[-1]
liste[0] = 'neuer_wert'
append(),
insert()
del, pop(),
remove()
sort(),
sorted()
reverse()len()🐍 Happy Coding!