Objektsammlungen in Listen (Python)

https://oer-informatik.de/python_listen

https://bildung.social/@oerinformatik

tl/dr; (ca. 10 min Lesezeit): Listen stellen eine mächtige und flexible Objektsammlung in Python dar. Der Artikel zeigt, wie Elemente erzeugt, verändert, gelöscht und ausgegeben werden. (Zuletzt geändert am 02.03.2024)

Grundlagen

Die Elemente von Listen können geändert, gelöscht und angefügt werden (sie sind mutable). Wie bei Tupeln kann auf die einzelnen Elemente über deren Index zugegriffen werden und es können Dopplungen enthalten sein. Listen sind in ihrer Länge variabel und verfügen über eine innere Ordnung.

Listen sind in Python als eine Klasse implementiert, die eine Reihe von Methoden anbietet - viele davon sind bereits durch den Namen selbsterklärend.

Methoden der Klasse list
Methoden der Klasse list

Am besten kann man Listen kennenlernen, in dem man sie mithilfe der Pythonshell erforscht:

Schritt 1: Einfache Listenoperationen

Es wird eine einfache Liste erzeugt, die die Werte des Spiels “Schere, Stein, Papier” speichert und verwaltet.

Einer neuen Liste Werte zuweisen:

Den Datentyp eines List-Objekts ausgeben:

Den Inhalt einer List auf der Konsole ausgeben:

Ein bestimmtes Element einer List ausgeben

Ebenso lassen sich über den Index 0 das erste und über den Index -1 das letzte Element ansprechen.

Ein Element einer Liste (an bestehender Position) zuweisen

Die Länge einer Liste ausgeben

Ein Element einer Liste löschen

Übungen zu einfachen Listenoperationen

Gegeben ist die folgende gefüllte Liste:

  1. Schreibe ein Programm, dass die Liste erzeugt und auf der Konsole ausgibt

  2. Ändere vor der Ausgabe Maus zu Wellensittich

  3. Lösche vor der Ausgabe die Katze

  4. Frage den Benutzer nach der Ausgabe nach dem Index des Tiers, das er austauschen will und nach dem Namen des Tiers, dass stattdessen dort stehen soll.

  5. Gebe die neue Liste und die Länge der Liste aus.

Schritt 2: Listenmethoden

Eine leere Liste erzeugen

Elemente an eine Liste anhängen

Ein neues Element am Index 1 (2. Position) einfügen:

Ein neues Element am Index 0 (1. Position) einfügen:

Ein neues Element an die vorletzte Position einfügen:

Ein neues Element an die letzte Position einfügen - macht man natürlich eigentlich mit insert(), aber so ginge es auch:

Iterieren durch Listen

Übung zu Listenmethoden

  1. Erstelle eine leere Liste, in der die Marvel-Charaktere gespeichert werden sollen. Nenne die Liste “Avengers”

  2. Füge der Liste per Methode das neue Element “Iron Man” an

  3. Füge der Liste per Methode die neuen Elemente “Captain America” und “Thor” an

  4. Gebe die Liste aus.

  5. Füge an der zweiten Stelle “Black Widow” ein.

  6. Füge an der fünften Stelle “Superman” ein.

  7. Füge an der sechsten Stelle “Bat man” ein.

  8. Füge an der vierten Stelle “Hulk” ein.

  9. Lösche das letzte Element.

  10. Ersetze das fünfte Element durh “Hawkeye”

  11. Gebe die Liste aus.

  12. Schon fertig? Dann erstelle eine Schleife, die so lange läuft, bis der Benutzer “e” (für Ende) eingibt, in der der Benutzer

  1. per “l” die aktuelle Liste ausgeben kann

  2. per “c” einen neuen Wert an eine gebene Position einfügen kann,

  3. per “r” den Wert an einer einzugebenden Position ausgeben kann,

  4. per “u” einen Wert (an eingegebener Position) updaten kann,

  5. per “d” einen Wert (an eingegebener Position) löschen kann.

Listen als Referenztypen

Listen verhalten sich anders als Werttypen. Welches Verhalten verwundert, wenn man folgendes ausprobiert? Was lässt sich daraus für Listen ableiten?

Teillisten / Slices

Wir können in Python relativ einfach Listenabschnitte kopieren, sogenannte Slices. Die Notation ist dabei

Wobei start der erste Index ist, der in der Teilliste enthalten sein soll und ende der erste Index ist, der nicht mehr in der Liste enthalten sein soll.

Die folgenden Beispiele werden mit der folgenden Liste umgesetzt, die Ursprungsliste selbst wird hierbei nicht verändert, sondern lediglich eine Kopie erzeugt:

Slices können auch zur Datenverarbeitung genutzt werden.

Type-Annotations für Listen

Type-Annotations geben Hinweise auf verwendete Datentypen, ohne eine funktionale Bedeutung für die Ausführung des Codes zu haben. Sie sind in Python optional und dienen ähnlich wie Kommentare nur dem Verständnis. Für Listen sind keine Type-Annotations im normalen Sprachumfang von Python enthalten. Sie müssen daher aus typing importiert werden.

Will man beschreiben, dass in marthas_haustiere eine Liste aus Zeichenketten gespeichert werden soll, so lautet der Code folgendermaßen:

Weitere Literatur zu Listen


Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: Objektsammlungen in Listen (Python)” von oer-informatik.de (H. Stein), Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/python_listen veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/python-basics/erste-schritte-mit-python. Stand: 02.03.2024.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: