Was ist der Index von 'Salat' in der folgenden Liste? ['Salat', 'Ăpfel', 'KĂ€se']
Listen
MERKE
Eine Liste ist eine Datenstruktur, die eine beliebige Anzahl an Elementen zwischenspeichert. Sie wird mit eckigen Klammern[ ]
dargestellt; ihre Elemente werden mit Kommata getrennt.Jedes Element hat eine âPositionsnummerâ, den Index. Achtung: Das vorderste/ganz linke Element hat Index 0!
Aufgabe 1
Weise mal folgenden Variablen die angegebenen Listen als Werte zu und
gib sie mit print
aus.
zahlen = [1, 2, 3, 4, 5, 6]
gemischt =[True, "String", " ", 3]
MERKE
Die LĂ€nge einer Liste ist einfach die Anzahl ihrer Elemente und kann mit der Funktionlen()
ermittelt werden.[]
ist ĂŒbrigens auch ein zulĂ€ssiger Ausdruck, das stellt die leere Liste dar. Vorsicht, Verwirrung: Die leere Liste [] ist nicht gleich der leeren VariableNone
!
Aufgabe 2
Probiere mal folgende Anweisungen aus!
len([1, 2, 3, 4, 5, 6])
len([])
len(None) # Das gibt natĂŒrlich einen Fehler. Nix hat
schlieĂlich auch keine LĂ€nge
Zugriff auf Daten
Wie greift man jetzt auf die Elemente einer Liste zu, zum Beispiel, um mit Ihnen zu rechnen oder sie einfach nur auszugeben?
Folgendes Beispiel:
liste = [1, 2, 3, 4, 5, 6]
-
Die ganze Liste ausgeben:
print(liste)
-
Ein Element aus der Liste lesen
liste[Index] # Erinnerung: Index ist die #Positionsnummer von links beginnend bei 0!
Also hier z.B.:
liste[0] liste[4]
MERKE
Da der Index bei 0 beginnt, hat das letzte/ganz rechte Element Indexlen(liste) - 1
!
Eine Liste mit drei Elementen hat also LÀnge 3, niedrigsten Index 0 und höchsten Index 2.
Folgender Code gibt den demnach einen Fehler, aber sieh selbst:kurze_liste = [1, 2, 3] kurze_liste[3]
-
Ein Element aus der Liste lesen und in einer Variable speichern
wert = liste[Index]
-
Hier z.B.:
das_erste = liste[0] print(das_erste)
-
Ein Element in einer Liste Àndern:
liste[Index] = neuer_wert
Was ist der Index von KĂ€se in der folgenden Liste? ['Salat', 'Ăpfel', 'Bier', 'Wein', 'KĂ€se']
Was gibt der folgende Code aus? print(len(['Salat', 'Ăpfel', 'KĂ€se', 'Gurken']))
Aufgabe 3
Probiere folgendes aus:
print(liste)
liste[2] = "hier bin ich"
print(liste)
Zugriff auf Daten - Ăbung
zahlen = [12, 4, 6, 9, 10, 6, 7]
Bearbeite die Aufgaben nacheinander. Gib jeweils das Ergebnis mit print
aus.
Aufgabe 4
Setze das Element mit Index 3 auf die Zahl 4.
Aufgabe 5
Lies den Wert am Index 1 aus und speichere ihn in einer Variable ab.
Lies den Wert am Index 4 aus und speichere ihn in einer weiteren Variable
ab.
Addiere beide und gib das Ergebnis aus.
Listenfunktionen
Einige wichtige Operatoren und Funktionen, die auf Listen angewandt werden können:
- +: Konkatenation (D.h. âAneinanderhĂ€ngenâ) zweier Listen
liste1 = [1, 2]
liste2 = [3, 4]
liste1 + liste2 # Das ergibt [1, 2, 3, 4]
len
: LĂ€nge der Liste
len([1, 2, "viele"])
-
min
undmin
: Minimum/Maximum in der Liste (nur bei Zahlen möglich)min([0, 5, -10]) max([0, 5, -10])
-
sum
: Summe aller Elemente in der Liste (nur bei Zahlen möglich)sum([9,1,2,3,5])
Listenfunktionen - Ăbung
liste1 = [5, 9, 2]
liste2 = [4, 1, 0]
Aufgabe 6
Verbinde die beiden Listen (d.h. hÀnge sie aneinander) und speichere das
Ergebnis wieder in der Variable liste2
.
Aufgabe 7
Lasse das Minimum der Liste liste1
ausgeben.
Aufgabe 8
Lasse die Summe der Werte in der Liste liste1
ausgeben.
Listenfunktionen 2
Es gibt noch ein paar weitere wichtige vordefinierte Funktionen im Zusammenhang mit Listen, die du kennen solltest:
-
append(x)
: FĂŒgt einen Wertx
am Ende der Liste hinzu:liste = ["Schere", "Stein"] print(liste) liste.append("Paar Bier") print(liste)
-
remove(x)
: Entfernt einen Wertx
aus der Liste (Genauer: entfernt das erste Element in der Liste, das den Wertx
hat.)liste = ["Schere", "Stein", "Papier", "Brunnen"] print(liste) liste.remove("Brunnen") print("Ohne Brunnen!") print(liste)
-
insert(i, x)
: FĂŒgt einen Wertx
an der Position (an Index)i
einliste = ["Erstens", "Zweitens", "Viertens"] print(liste) liste.insert(2, "Drittens") print(liste)
Listenfunktionen 2 - Ăbung
liste1 = [1, "Passau", 4, 6, "Berlin"]
Aufgabe 9
FĂŒge âHamburgâ am Ende der liste1 an und gebe die Liste aus.
Aufgabe 10
Entferne âBerlinâ aus der Liste und gebe die Liste neu aus.
Aufgabe 11
FĂŒge 42 am Index 0 ein. Gib die Liste erneut aus.
Listen und Schleifen
Nehmen wir mal an, wir haben eine Eisdiele ĂŒberfallen und möchten jetzt jede Eissorte aus der Liste
ice_cream = ["Schoko", "Erdbeere", "Vanille"]
einzeln ausgeben.
Es bietet sich an, mit einer Schleife nacheinander jedes Element aus der Liste zu holen und auszugeben.
Praktisch ist hier vor allem die for-Schleife:
Bisher:
for i in range(anfang, ende):
...
range(anfang, ende)
kann durch eine beliebige Liste ersetzt werden!
Das heiĂt wir können mit der for-Schleife einmal die Liste durchgehen.
Probier das mal mit folgendem Code aus: \
ice_cream = ["Schoko", "Erdbeere", "Vanille"]
for ice in ice_cream:
print(ice + " mit Schokosauce")
Chatbot: Wahrheit und LĂŒge
Aufgabe 12
ZurĂŒck zu unserem kleinen Chatbot, den gibt es ja auch noch!
Der soll jetzt eine abgewandelte Version von â2 Wahrheiten und 1 LĂŒgeâ
spielen können:
Das soll so, wie der folgende Pseudocode aufgebaut sein:
lege eine leere Liste an
solange Eingabe nicht 'stop' ist
lies einen Satz ein
hÀnge diesen Satz an die Liste
nimm zufÀllig einen Index (eine Positionsnummer) zwischen 0 und
der LĂ€nge der Liste - 1 (!)
nimm das Element mit diesem Index aus der Liste
gib sowas aus wie `Das ist die LĂŒge` + dieses Element
MERKE
Eine Zufallszahl kannst du mitrandint(untergrenze, obergrenze)
erzeugen, also zum Beispielrandint(0, 5)
Diese Funktion musst du allerdings mit folgender Zeile einbinden
from random import randint
Platziere diese am Besten ganz oben in deiner Projektdatei.
Zusatzinfo: 2-dimensionale Liste
Um es noch ein bisschen komplizierter zu machen lernst du jetzt mehrdimensionale Listen kennen!
MERKE
Man kann auch Listen ineinander schachteln, also eine âListe von Listen von Listen von ⊠usw.â bauen. Man sagt dazu dann auch mehrdimensionale Liste.Konkret: Wenn die âSchachtelungstiefeâ zum Beispiel 2 ist (also eine âListe von Listenâ), spricht man von einer zweidimensionalen Liste. Das entspricht mathematisch gesehen einer Matrix!
Eine zweidimensionale Liste bzw. Matrix:
matrix = [[1, 2], [3, 4]]
Das ist also eigentlich eine Liste von Zeilen der Matrix, wobei jede Zeile wiederum selbst eine Liste (von Zahlen) ist.
MERKE
Zugriff auf Elemente zweidimensionaler Listen âEine Dimension nach der anderenâmatrix[0] # Das gibt hier [1, 2], also die #erste Zeile (Die hat Index 0) der Matrix, #also eine Liste matrix[0][1] # Das nimmt zuerst die erste #Zeile (Die hat Index 0) der Matrix, #also [1, 2], und davon dann das Element #mit Index 1, also hier den Wert 2.
Aufgabe 13
Lass die Liste matrix
ausgeben
Aufgabe 14
Lass das zweite Element (also das mit Index 1) von matrix
ausgeben.
Aufgabe 15
Ăndere die erste Zeile von matrix
auf [10, 11]
.
Aufgabe 16
Erstelle eine Schleife, die einmal jedes Element der Liste matrix
(also jede Zeile) einzeln ausgibt.
Aufgabe 17
Versuche die 10 aus matrix
zu entfernen und gib die geÀnderte matrix
aus.
Zusatz 1
Aufgabe 18 (Pro)
Erstelle drei leere Listen fĂŒr drei beliebige SchulfĂ€cher.
Nutze eine zusĂ€tzliche Schleife, um nacheinander beliebig viele Noten fĂŒr
jedes dieser FĂ€cher einzulesen.
Aufgabe 19 (Pro+)
Ăndere dein Programm so, dass der Nutzer bei der Eingabe jeder einzelnen
Note entscheiden kann, welchem Fach sie zugeordnet werden soll.
Bedenke auch den Fall, dass ein Nutzer versucht, fĂŒr ein âungĂŒltigesâ Fach
(also keines der drei festgelegten) Werte einzugeben. Teile ihm in diesem
Fall mit, dass das bedauerlicherweise nicht möglich ist.
Aufgabe 20 (Crack)
Verwende statt drei einzelnen Liste eine zweidimensionale Liste.
âŠKlingt einfach, ist aber gar nicht so ohne ;)
Zusatz 2
MERKE FĂŒr die folgenden Zusatzaufgabe solltest du dich schon mal mit dem nĂ€chsten Kapitel vertraut machen. Andernfalls kannst du auch einfach die sogenannte Funktion weglassen oder dir eine Aufgabe im Kapitel mit den Zusatzaufgaben ansehen.
Achtung, in diesem Abschnitt wird es noch einmal sehr mathematisch! Es geht nĂ€mlich um Matrizen. Warum wir das machen? Matrizen spielen in vielen Anwendungsbereichen eine groĂe Rolle: Machine Learning, Game Development, Robotik, ⊠in all diesen Bereichen arbeiten Programme fast nur mit Matrizen!
Aufgabe 21 (Matrixdarstellung)
Definiere eine eigene Funktion print_matrix
, die eine Matrix als
Parameter ĂŒbergeben bekommt und diese dann in schöner âTabellenformâ
ausgibt. Tipp: Benutze dazu verschachtelte Schleifen.
Rufe die Funktion ein paar mal mit verschiedenen Werten auf, um sie
grĂŒndlich zu testen.
Aufgabe 22 (Transponieren)
Erstelle eine weitere Funktion transpose, die eine Matrix als Parameter
erhÀlt und sie transponiert:
Aus
soll
werden.
Zur Vereinfachung kannst du voraussetzen, dass die Funktion nur
Matrizen bekommt.
Aufgabe 23 (Matrizenmultiplikation) \
Schreibe eine Funktion matmul
die zwei Matrizen als Parameter bekommt
und damit eine Matrizenmultiplikation ausfĂŒhrt. Also
Zur Vereinfachung kannst du wieder voraussetzen, dass die Funktion nur
Matrizen bekommt.
Aufgabenempfehlung im Zusatzkapitel
- Moving Average