Programmieren III: Listen, for-Schleifen

2023_listen.pdf

Bisher haben wir in Variablen einzelne Werte gespeichert. Kann man auch mehrere Werte in einer Variablen speichern? Ja! Mit Listen!

Eine Liste wird erstellt, indem die Elemente in [ eckigen Klammern ] (en: brackets) eingeschlossen werden:

alphabet = ['a','b','c','d','e']

Die Liste im Beispiel oben hat die fünf Elemente 'a', 'b', 'c', 'd' und 'e'. Jedes dieser Elemente hat einen bestimmten Index, seine Position in der Liste:

Position / Index 0 1 2 3 4
Element 'a' 'b' 'c' 'd' 'e'

Beachte, dass das erste Element den Index 0 hat1)!

Über den Index kann man auf ein Element zugreifen, das Element wird ausgewählt oder selektiert. Dazu schreibt man zuerst den Namen der Liste und dann den Index in eckigen Klammern:

print(alphabet[2]) # gibt 'c' aus alphabet[3] = 'z' # ändert Element an Position 3 (also 'd') zu 'z' print(alphabet) # Ausgabe: ['a','b','c','z','e']

Einer Liste kann man Elemente hinzufügen und entfernen

alphabet.append('f') # Fügt Element hinten an, Liste nachher: ['a','b','c','z','e','f'] alphabet.insert(1,'q') # Fügt Element 'q' an Position 1 ein, Liste nachher: ['a','q','b','c','z','e','f'] alphabet.pop(3) # Entfernt Element an Position 3, Liste nachher: ['a','q','b','z','e','f'] alphabet.pop() # Entfernt letztes Element, Liste nachher: ['a','q','b','z','e'] print(alphabet)

Die Länge einer Liste bestimmt man wie folgt:

l = len(alphabet) # Anzahl Elemente in Liste print(l)

Oft möchte man durch alle Elemente einer Liste durchgehen und etwas mit diesen machen, z.B. sie in die Konsole printen:

alphabet = ['a','b','c','d','e'] i = 0 # Startindex, 0, weil wir zuerst das vorderste Element (hier 'a') auslesen möchten while i < len(alphabet): # Bedingung while-Schleife print(alphabet[i]) # lese Element aus Liste aus, alphabet[i], und printe dieses i = i + 1 # erhöhe Index

In der Bedingung i < len(alphabet) ermitteln wir mit len(alphabet) die Länge der Liste. Wichtig ist auch, dass der Index i kleiner (und nicht kleiner gleich) ist als diese Länge, da sonst versucht wird, auf Element zuzugreifen, welches nicht existiert.

Noch etwas eleganter geht dasselbe mit einer for-Schleife (mehr dazu im nächsten Kapitel). Dabei wird die Schleifen-Variable (im Beispiel e) in jedem Durchgang der Schleife auf das nächste Element der Liste gesetzt.

alphabet = ['a','b','c','d','e'] for e in alphabet: print(e)

Mit folgendem Code überprüft man, ob ein Element in einer Liste steht:

if 'b' in ['a','c','e','g']: print('kommt in Liste vor') else: print('kommt nicht in Liste vor')

Aufgabe H1

Betrachte die Liste alphabet = ["B","C","X","D","Z","F","G","I","J"]. Korrigiere die Liste, indem du mit den entsprechenden Funktionen:
  • am Anfang ein "A" einfügst
  • das "X" entfernst
  • dem Element mit Wert "Z" den korrekten Wert "E" zuweist
  • am richtigen Ort ein "H" einfügst
  • am Ende ein "K" anhängst

Aufgabe H2

Betrachte die Liste: likeable_football_clubs = ["bvb", "liverpool", "st. gallen", "bayern", "freiburg", "breitenrain"]
  1. Gehe mit einer Schleife der Reihe nach durch alle Elemente der Liste durch und gebe sie aus.
  2. Die Bayern haben nichts in dieser Liste verloren. Bitte entferne sie, danke! Füge weiter deinen Lieblingsklub hinzu.

Aufgabe H3

Betrachte die Liste [68, 71, 53, 34, 66, 55, 80, 93, 24, 49, 68, 73, 9, 8, 93, 22, 44, 11, 82]
  1. Berechne die Summe aller Elemente in der Liste in einer for-Schleife.
  2. Berechne die Summe aller Elemente in der Liste in einer while-Schleife.
  3. Berechne die Summe aller Elemente mit geradem Index (also mit Index 0, 2,...) in der Liste.

Aufgabe H4

Implementiere einige Funktionen, welche einem helfen sollen, Listen zu analysieren:
  • Funktion liste_anzahl(liste,x): Nimmt eine Liste liste und eine Zahl oder einen String x entgegen. Die Funktion bestimmt dann, wie oft das Element x in liste vorkommt und gibt diese Anzahl zurück.
  • Funktion liste_max(liste): Bestimmt das grösste Element einer Liste und gibt dieses zurück.
  • Funktion liste_min(liste): Ähnlich wie liste_max(liste), gibt aber das kleinste Element zurück.

Für die Liste numbers = [3,1,5,4,9,4,8,3,1,2,4,9] und die Aufrufe print(liste_anzahl(numbers, 3)), print(liste_max(numbers)) und print(liste_min(numbers)) ist der Output 2, 9 und 1.

Aufgabe H5

Definiere eine Funktion mittelwert(numbers), welcher eine Liste mit Zahlen übergeben wird. Von diesen Zahlen wird dann der Mittelwert berechnet und zurückgegeben. Übergibt man zum Beispiel eine Liste mit Schulnoten, so erhält man den Notendurchschnitt zurück. Zeige den Durchschnittswert dann in einem formatierten String an, z.B. "Der Mittelwert ist 4.46".

Aufgabe H6 (optional)

Programmiere eine Funktion liste_haeufigste(liste): Gibt eine Liste zurück, die alle Elemente enthält, die am häufigsten vorkommen. Neben dieser Liste wird auch eine Zahl ausgegeben, die angibt, wie oft diese Elemente in der Liste vorkommen.

TODO hof


1)
Warum beginnt die Nummerierung bei 0? Zero-based_numbering und Edsger W. Dijkstra geben ein paar Anhaltspunkte.
  • gf_informatik/programmieren_iii.1777526642.txt.gz
  • Zuletzt geändert: 2026-04-30 05:24
  • von hof