5. Unterrichtsblock
Python Listen
meineListe = ["Apfel", "Zwetschge", "Birne"]
Die Liste
Listen werden verwendet, um mehrere Elemente in einer einzigen Variablen zu speichern.
Listen sind einer von 4 integrierten Datentypen in Python, die zum Speichern von Datensammlungen verwendet werden, die anderen 3 sind Tupel, Sets und Dictionaries, alle mit unterschiedlichen Qualitäten und Verwendungszwecken.
Python-Sammlungsdatentypen (Arrays)
In der Programmiersprache Python gibt es vier Sammlungsdatentypen:
- Liste ist eine Sammlung, die geordnet und veränderbar ist. Erlaubt doppelte Mitglieder.
- Tuple ist eine Sammlung, die geordnet und unveränderlich ist. Erlaubt doppelte Mitglieder.
- Set ist eine Sammlung, die ungeordnet, unveränderlich* und nicht indiziert ist. Keine doppelten Mitglieder.
- Dictionary ist eine Sammlung, die geordnet** und veränderbar ist. Keine doppelten Mitglieder.
*Set- Elemente können nicht geändert werden, aber Sie können Elemente jederzeit entfernen und/oder hinzufügen.
**Ab Python-Version 3.7 sind Dictionaries geordnet. In Python 3.6 und früher sind Dictionaries ungeordnet.
Bei der Auswahl eines Sammlungstyps ist es hilfreich, die Eigenschaften dieses Typs zu verstehen. Die Wahl des richtigen Typs für einen bestimmten Datensatz kann bedeuten, dass die Bedeutung erhalten bleibt, und es kann eine Steigerung der Effizienz oder Sicherheit bedeuten.
Listen werden mit eckigen Klammern erstellt:
# Erstellung einer Liste:
meineListe = ["Apfel", "Zwetschge", "Birne"]
print(meineListe)
Artikel auflisten
Listenelemente sind geordnet, veränderbar und erlauben doppelte Werte. Listenelemente sind indiziert, das erste Element hat index [0]
, das zweite Element hat index [1]
usw.
Geordnet
Wenn wir sagen, dass Listen geordnet sind, bedeutet dies, dass die Elemente eine definierte Reihenfolge haben und diese Reihenfolge sich nicht ändert.
Wenn man neue Elemente zu einer Liste hinzufügt, werden die neuen Elemente am Ende der Liste platziert.
Hinweis: Es gibt einige Listenmethoden, die die Reihenfolge ändern, aber im Allgemeinen: Die Reihenfolge der Elemente ändert sich nicht.
Veränderbar
Die Liste ist veränderbar, was bedeutet, dass man Elemente in einer Liste ändern, hinzufügen und entfernen kann, nachdem sie erstellt wurde.
Duplikate zulassen
Da Listen indexbasiert sind, können Listen auch Elemente mit demselben Wert haben:
# Listen erlauben doppelte Werte:
meineListe = ["Apfel", "Banane", "Kirsche", "Apfel", "Kirsche"]
print(meineListe)
Listenlänge
Um zu bestimmen, wie viele Elemente eine Liste hat, verwendet man die len()
Funktion:
# Anzahl der Elemente in der Liste ausgeben:
meineListe = ["Apfel", "Banane", "Kirsche", "Apfel", "Kirsche"]
print(len(meineListe))
Listenelemente – Datentypen
Listenelemente können jeden Datentyp und auch gemischte Datentypen haben:
# Zum Beispiel String-, int- und boolesche Datentypen:
liste1 = ["Apfel", "Banane", "Kirsche"]
liste2 = [1, 5, 7, 9, 3]
liste3 = [True, False, False]
# Eine Liste kann verschiedene Datentypen enthalten.
# Eine Liste mit Strings, Integers und booleschen Werten:
person1 = ["Prinzregentenstraße 65", 34, True, 40000, "weiblich"]
Typ()
Aus Sicht von Python sind Listen als Objekte mit dem Datentyp ‚list‘ definiert:
# Was ist der Datentyp einer Liste?
meineListe = ["Apfel", "Banane", "Kirsche", "Apfel", "Kirsche"]
print(type(meineListe))
Der list()-Konstruktor
Es ist auch möglich, den list()
-Konstruktor beim Erstellen einer neuen Liste zu verwenden .
# Erstellung einer Liste mit dem list()Konstruktor:
meineListe = list(("Apfel", "Banane", "Kirsche")) # Es sind doppelte Klammern dzu verwenden
print(meineListe)
Aufgaben
Probiere o.g. Codes aus und arbeite mit unterschiedlichen Datentypen.
Aufgabe 1: Artikel auflisten
Erstelle eine Liste namens einkaufsListe
, die folgende Artikel enthält: „Milch“, „Eier“, „Brot“, „Milch“. Gib dann die Liste aus. Diskutiere, ob Doppelteinträge in Listen erlaubt sind.
Aufgabe 2: Listenoperationen
Erstelle eine Liste namens fruechte
, füge „Ananas“ hinzu, ändere das zweite Element auf „Pflaume“, entferne dann das erste Element und gib die resultierende Liste aus.
Aufgabe 3: Listenlänge bestimmen
Erstelle eine Liste namens fahrzeuge
, die folgende Elemente enthält: „Auto“, „Motorrad“, „Fahrrad“, „Roller“. Verwende die len()
-Funktion, um die Anzahl der Elemente in der Liste zu ermitteln und gib diese Anzahl aus.
Aufgabe 4: Verschiedene Listenelement-Datentypen
Erstelle eine Liste, die das Alter (als int), den Namen (als String), und den Status (als bool) einer Person enthält. Wende die type()
-Funktion auf die Liste an und gib den Datentyp aus.
Aufgabe 5: Listenkonstruktor verwenden
Verwende den list()
-Konstruktor, um eine Liste namens staedte
mit den Orten „Berlin“, „Hamburg“, „München“ zu erstellen. Gib die Liste aus.
Zugriff auf Listenelemente
Listenelemente sind indexbasiert und man kann darauf zugreifen, indem man sich auf die Indexnummer bezieht:
# Ausgabe des zweiten Listenpunktes:
meineListe = ["Apfel", "Banane", "Zwetschge"]
print(meineListe[1])
Hinweis: Das erste Element hat den Index 0.
Negative Indexierung
Negative Indexierung bedeutet, dass am Ende begonnen wird
-1
bezieht sich auf das letzte Element, -2
bezieht sich auf das vorletzte Element usw.
meineListe = ["Apfel", "Banane", "Zwetschge"]
# Welcher Code?
Aufgabe
Lasse das mittlere Listenelement in der Ausgabe erscheinen
Bereich von Indexwerten
Man kann einen Bereich von Indexwerten angeben, indem man angibt, wo der Bereich beginnen und wo er enden soll. Bei der Angabe eines Bereichs ist der Rückgabewert eine neue Liste mit den angegebenen Elementen.
# Ausgabe von Bereichen einer Liste:
print(listenName[0:2]) # Die Ausgabe beginnt bei Index 0 (enthalten)
# und endet bei Index 2 (nicht inbegriffen)
meineListe = ["Apfel", "Banane", "Kirsche", "Orange", "Kiwi", "Melone", "Mango"]
Aufgabe
Lasse den Bereich von „Banane“ bis „Melone“ in der Ausgabe erscheinen
Hinweis: Wenn man den Startwert weglassen, beginnt der Bereich beim ersten Element:
meineListe = ["Apfel", "Banane", "Kirsche", "Orange", "Kiwi", "Melone", "Mango"]
# ?
Aufgabe
Gib die Elemente vom Anfang an, aber NICHT einschließlich „Kiwi“ zurück.
Dieses Beispiel gibt die Elemente von „Kirsche“ bis zum Ende zurück:
meineListe = ["Apfel", "Banane", "Kirsche", "Orange", "Kiwi", "Melone", "Mango"]
print(meineListe[2:])
# Bereiche von negativen Indexwerten
print(meineListe[-4:-1])
Überprüfung, ob ein Artikel vorhanden ist
Um festzustellen, ob ein bestimmtes Element in einer Liste vorhanden ist, verwenden Sie das in
Schlüsselwort:
Überprüfen Sie, ob „Apple“ in der Liste vorhanden ist:
meineListe = ["Apfel", "Banane", "Zwetschge"]
if "Apfel" in meineListe:
print("Ja, 'Apfel' ist in der Liste")
Aufgabe
Prüfe, ob Banane in der Liste vorhanden ist
Arbeite mit Variablen, um in der Antwort den angefragten Wert auszugeben. Es darf im Programm später nur der Indexwert manuell geändert werden müssen. Die Ausgabe der richtigen Frucht soll dynamisch passieren.
Beispiel 1 = Wird der Variablen eine 1 zugewiesen, soll die Ausgabe enthalten:
„Ja, Banane ist in der Liste enthalten“
Beispiel 2 = Wird der Variablen eine 0 zugewiesen, soll die Ausgabe enthalten:
„Ja, Apfel ist in der Liste enthalten“
Artikelwert ändern
Um den Wert eines bestimmten Elements zu ändern, beziehen Sie sich auf die Indexnummer:
# Änderung des zweiten Elements:
meineListe = ["Apfel", "Banane", "Zwetschge"]
meineListe[1] = "Kirsche"
print(meineListe)
Ändern eines Bereichs von Artikelwerten
Um den Wert von Elementen innerhalb eines bestimmten Bereichs zu ändern, definieren Sie eine Liste mit den neuen Werten und beziehen Sie sich auf den Indexnummernbereich, in den Sie die neuen Werte einfügen möchten:
Ändert die Werte „Banane“ und „Kirsche“ mit den Werten „Himbeere“ und „Wassermelone“:
meineListe = ["Apfel", "Banane", "Kirsche", "Orange", "Kiwi", "Melone", "Mango"]
meineListe[1:3] = ["Himbeere", "Wassermelone"]
print(meineListe)
Aufgabe
Baue o.g. Code nach
Wenn man mehr Elemente einfügt als ersetzt, werden die neuen Elemente dort eingefügt, wo man es angegeben hat, und die verbleibenden Elemente werden entsprechend verschoben:
# Ändert den zweiten Wert, indem Sie ihn durch zwei neue Werte ersetzen:
meineListe = ["Apfel", "Banane", "Zwetschge"]
meineListe[1:2] = ["Himbeere", "Wassermelone"]
print(meineListe)
Aufgabe
Baue o.g. Code nach
Hinweis: Die Länge der Liste ändert sich, wenn die Anzahl der eingefügten Elemente nicht mit der Anzahl der ersetzten Elemente übereinstimmt.
Wenn man weniger Elemente einfügt, als man ersetzt, werden die neuen Elemente dort eingefügt, wo man es angegeben hat und die verbleibenden Elemente werden entsprechend verschoben:
# Änderung des zweiten und dritten Werts, indem dieser durch einen Wert ersetzt wird:
meineListe = ["Apfel", "Banane", "Zwetschge"]
meineListe[1:3] = ["Wassermelone"]
print(meineListe)
Aufgabe
Baue o.g. Code nach
Elemente einfügen
Um ein neues Listenelement einzufügen, ohne einen der vorhandenen Werte zu ersetzen, kann man die insert()
Methode verwenden.
Die insert()
Methode fügt ein Element am angegebenen Index ein:
# Fügt als drittes Element "Wassermelone" ein:
meineListe = ["Apfel", "Banane", "Zwetschge"]
meineListe.insert(2, "Wassermelone")
print(meineListe)
Hinweis: Als Ergebnis des obigen Beispiels enthält die Liste jetzt 4 Elemente.
Aufgabe
Baue o.g. Code nach und füge zusätzlich die Elemente „Erdbeere“ und „Zitrone“ ein.
Elemente anhängen
Um ein Element am Ende einer Liste hinzuzufügen, verwendet man die Methode append()
:
# Verwenden der append()-Methode zum Anhängen eines Elements:
meineListe = ["Apfel", "Banane", "Zwetschge"]
meineListe.append("Orange")
print(meineListe)
Aufgabe
Baue o.g. Code nach und füge zusätzlich die Elemente „Erdbeere“ und „Zitrone“ ein.
Liste erweitern
Man verwendet die extend()
Methode, um Elemente aus einer anderen Liste an die aktuelle Liste anzuhängen.
# Einfügen von Elementen von tropisch zu meineListe:
meineListe = ["Apfel", "Banane", "Zwetschge"]
tropisch = ["Mango", "Ananas", "Papaya"]
meineListe.extend(tropisch)
print(meineListe)
Aufgabe
Baue o.g. Code nach und füge zusätzlich eine weitere Liste mit verschiedenen Nüssen hinzu.
Die Elemente werden am Ende der Liste hinzugefügt.
Hinzufügen von anderen Iterablen
Die extend()
Methode kann nicht nur Listen anhängen, man kann auch jedes andere iterierbare Objekt (Tupel, Sets, Dictionaries usw.) hinzufügen.
# Elemente eines Tupels zu einer Liste hinzufügen:
meineListe = ["Apfel", "Banane", "Zwetschge"]
meinTupel = ("Kiwi", "Orange")
meineListe.extend(meinTupel)
print(meineListe)
Aufgabe
Baue o.g. Code nach und füge zusätzlich eine Liste mit „Getränken“ hinzu.
Aufgabe
Kombiniere das heute Erlernte mit den Inhalten vorherigen Unterrichtsblöcke und probiere verschiedene Konstellationen aus.