Python Tutorial
- jetzt Python programmieren lernen

mit Listen arbeiten – Einsatz von Methoden

Im letzten Kapitel haben wir Listen kennen gelernt und deren grundsätzliche Möglichkeiten. Da geht aber noch deutlich mehr und sehr einfach.

Wir haben eine Liste erstellt und komplett ausgegeben über:

vornamen = ['Axel', 'Elke', 'Martin']
print(vornamen)

Eine Liste erweitert über:

vornamen = ['Axel', 'Elke', 'Martin']
vornamen += ['Heike', 'Sabine']
print(vornamen)

Und ein einzelnes Element der Liste ausgegeben.

Wichtig war, dass der Index einer Liste immer bei 0 beginnt!

Im Folgenden lernen wir alle wichtigen Möglichkeiten der Listen-Methoden kennen:

  • Element in Liste am Ende einfügen
  • Element an bestimmter Position in Liste einfügen
  • Element vom Listenende löschen
  • Element von bestimmter Position der Liste löschen
  • Element anhand vom Wert aus einer Liste löschen

Aber was sind Methoden?

Methoden und Listen

Bisher sind Python Kurs noch nicht direkt auf Methoden zu sprechen gekommen. Aber was sind diese Methoden, die es in jeder Programmiersprache gibt? Sucht man nach Synonymen von dem Wort „Methode“ stößt man auf „Vorgehen, Arbeitsweise und Handhabung“. Wir können also auf ein bestimmtes Objekt (in unserem Fall sind die Objekte der Begierde die Listen) vorgegebene Methoden (sprich Möglichkeiten) anwenden. Wer sich schon ein bisschen mit Objektorientierter Programmierung auseinandergesetzt hat, kennt das. Wir haben ein Objekt und das Objekt hat einerseits Inhalt (sprich Attribute) und mögliche vordefinierte Funktionen (sprich Methoden).

Und hier kommt auch die Schreibweise zum Vorschein. Erst wir das Objekt genannt und dann wird die Methode an dieses Objekt mit einem Punkt „verkettet“. Gegebenenfalls kann man noch weitere Parameter für die Funktionsweise der Methode mit übergeben. Klarer wird es im konkreten Beispiel (natürlich hier mit Listen).

Nutzen wir die Liste mit den Vornamen und lassen uns den zweiten Namen (sprich Indexnummer 1) ausgeben:

vornamen = ['Axel', 'Elke', 'Martin']
print(vornamen[1])

Jetzt wenden wir die Methode upper() auf unsere Objekt (in diesem Fall einen String) an. Unsere Ausgabe vom Listenobjekt mit dem Index 1 wird mit der Methode „schreib alles groß“ bzw. upper() verbunden:

vornamen = ['Axel', 'Elke', 'Martin']
print(vornamen[1].upper())

Als Ergebnis bekommen wir:

ELKE

Der Inhalt der Liste selber ändert sich nicht, sondern nur die Ausgabe wird in Großschreibung gebracht.

Hier haben wir das erste Beispiel für eine Methode, die keine weiteren Angaben braucht. Es soll ja einfach alles groß geschrieben werden.

Schauen wir im nächsten Beispiel Methoden an, die weitere Angaben benötigen, damit sie ihre Funktion auch erfüllen können.

Weiterer Eintrag am Ende einer Liste anhängen: append()

Wir wollen in einer Liste einen weiteren Eintrag anhängen. Dazu gibt es eine Methode mit dem Namen append(). Hier ist sofort einsichtig, dass wir etwas übergeben müssen, was dann an die bestehende Liste angehängt werden wird. Unsere Anhäng-Methode wird also immer mit zusätzlichem Parameter in Erscheinung treten: append(`anzähender Eintrag`)

Wir erstellen eine leere Liste mit dem Namen „buchstaben“.

buchstaben = []
print(buchstaben)

Wir haben also mit der Liste „buchstaben“ ein Objekt. Diesem Listen-Objekt wollen wir einen weiteren (in diesem Fall den ersten) Eintrag anhängen. Also wenden wir append() an:

buchstaben = []
print(buchstaben)
buchstaben.append('a')
buchstaben.append('b')
print(buchstaben)

Als Ausgabe erhalten wir:

[]
['a', 'b']

In der ersten Zeile sehen wir, dass eine leere Liste existiert.

Dann wird über append() zweimal ein Buchstabe angefügt. Dieser wir jeweils am Ende der Liste eingetragen!

Element in Liste an bestimmte Position einfügen: insert()

Wollen wir nicht am Ende sondern an einer vordefinierten Stelle Inhalt in der Liste einfügen, kommt die Methode insert() zum Einsatz.

Weil es so schön übersichtlich ist, nutzen wir wieder unser Buchstabenbeispiel und wollen nun in der bestehenden Liste mit ['a', 'b'] ein „c“ zwischen a und b schieben (sprich einfügen).

Jetzt benötigen wir bei der Methode insert() bereits 2 Parameter:

  • was soll eingefügt werden
  • wo soll es einfügt werden

Beide Angaben werden in den Runden Klammern der Methode mit übergeben. Vergisst man Angaben, erhält man den Fehler „TypeError: insert() takes exactly 2 arguments (1 given)“. Die Reihenfolge ist:

  1. wo soll es eingefügt werden als Index
  2. was soll eingefügt werden
buchstaben = ['a', 'b']
print(buchstaben)
buchstaben.insert(1, 'c')
print(buchstaben)

Das Programm ergibt dann folgende Ausgabe:

['a', 'b']
['a', 'c', 'b']

Element aus Liste entfernen: del

Genauso wichtig wie einfügen ist auch das Löschen. In vielen Spielen werden Daten in Listen gespeichert. Sind die Gegner in Listen gespeichert und fällt ein Gegner einem heimtückischen Anschlag zum Opfer und verstirbt tragisch, muss dieser aus der Liste entfernt werden. Dazu bietet Python die Anweisung del, der ein Index mit übergeben werden muss, welches Listenelement gelöscht werden soll. Unser Buchstabenbeispiel:

buchstaben = ['a', 'b']
print(buchstaben)
del buchstaben[0]
print(buchstaben)

Und als Ergebnis kommt:

['a', 'b']
['b']

Hier wurde mal eine Anweisung (und keine Methode eingeschmuggelt)! Aber es gibt auch Methoden, um Elemente aus Listen zu löschen.

Letztes Element aus Liste entfernen: pop()

Der Vorteil unserer Methode pop()

Wichtig ist, pop() löscht immer den letzten Eintrag!

buchstaben = ['a', 'b']
print(buchstaben)
letztereintrag = buchstaben.pop()
print(buchstaben)
print("Letzter gelöschter Eintrag: ", letztereintrag)

Und als Ausgabe kommt:

['a', 'b']

['a']

Letzter gelöschter Eintrag: b

Elemente aus Liste entfernen anhand vom Wert: remove()

Wir können auch ein Element anhand seines Wertes aus einer Liste entfernen lassen. Dazu wird der Wert mit übergeben:

buchstaben = ['a', 'b', 'c']
print(buchstaben)
buchstaben.remove('b')
print(buchstaben)

Ergibt als Ergebnis:

['a', 'b', 'c']
['a', 'c']

Versuchen wir einen Wert zu löschen, der nicht in der Liste existiert, erhalten wir die Fehlermeldung „buchstaben.remove('e')
ValueError: list.remove(x): x not in list”

Diese Fehlermeldungen können wir später über bestimmte Techniken abfangen, jetzt müssen wir vorerst damit noch leben.

Somit haben wir alle wichtigen Möglichkeiten der Listen-Methoden kennen gelernt:

  • Element in Liste am Ende einfügen
  • Element an bestimmter Position in Liste einfügen
  • Element vom Listenende löschen
  • Element von bestimmter Position in der Liste löschen
  • Element anhand vom Wert aus Liste löschen

Damit lassen sich viele Aufgaben bei Listen schnell und einfach erledigen!