Du liest:
Listen in Python: Alles was du wissen musst

Listen in Python: Alles was du wissen musst

von Patrick
21.04.2020
Jetzt Python programmieren lernen

Für das Strukturieren von Daten bieten sich häufig Werkzeuge wie Listen an, die sich über die Jahre als überaus praktisch erwiesen haben. Wie man diese in Liste in Python verwendet, zeige ich dir im Folgenden.

1. Listen erstellen und in Python Liste konvertieren

Um eine leere Liste zu erstellen, kannst du einfach variable = [] schreiben oder variable = list().

leere_liste = []
print(type(leere_liste), leere_liste)
# <class 'list'> []
leere_liste = list()
print(type(leere_liste), leere_liste)
# <class 'list'> []

Auf gleiche Art und Weise können wir auch Listen mit Inhalt erstellen.

liste = [1, 2, 3, 4, 5]
print(liste)
# [1, 2, 3, 4, 5]

liste = list((1, 2, 3, 4, 5))
print(liste)
# [1, 2, 3, 4, 5]

Bei dem Beispiel mit list() fällt auf, dass das Element darin selbst in () steht, diese Art Sequenz nennt man Tupel.
Dies ist der Fall, da die Funktion list als Argument nur ein iterierbares Objekt akzeptiert, jedoch kann man so ganz einfach Strings in Listen konvertieren, da es sich bei Strings um iterierbare Objekte handelt.

liste = list('CodeCitrus')
print(liste)
# ['C', 'o', 'd', 'e', 'C', 'i', 't', 'r', 'u', 's']

Dasselbe ist der Fall für Generatoren, da diese ebenfalls iterierbar sind, hier gezeigt am Beispiel range: (siehe auch den Artikel zu range)

liste = list(range(1, 300, 100))
print(liste)
# [1, 101, 201]

2. Hinzufügen und Löschen von Listen in Python

Hinzufügen können wir Elemente zu Listen mit den Methoden append und extend, entfernen mit del und remove. (siehe auch Artikel zu Elemente aus Listen entfernen)

liste = [1, 2, 3, 4, 5]
liste.append(6)
print(liste)
# [1, 2, 3, 4, 5, 6]

Append fügt ein einzelnes Element hinzu, dasselbe können wir jedoch mit dem + Operator erreichen.

liste = [1, 2, 3, 4, 5]
liste += [6]
print(liste)
# [1, 2, 3, 4, 5, 6]

Wenn wir allerdings eine Liste mit append zur bereits bestehenden Liste hinzufügen, wird diese als Liste hinzugefügt und nicht ihre einzelnen Elemente.

liste = [1, 2, 3, 4, 5]
liste_2 = [6, 7, 8, 9]
liste.append(liste_2)
print(liste)
# [1, 2, 3, 4, 5, [6, 7, 8, 9]]

Wenn wir die Elemente zweier Listen zusammenfügen wollen, müssen wir stattdessen extend verwenden.

liste = [1, 2, 3, 4, 5]
liste_2 = [6, 7, 8, 9]
liste.extend(liste_2)
print(liste)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

Um Elemente aus einer Liste zu löschen, können wir entweder die Methode remove verwenden, um einen Wert zu löschen oder das Schlüsselwort del, um ein Element anhand des  Indexes aus einer Liste zu löschen:

liste = [1, 2, 3]
liste.remove(2)
print(liste)
# [1, 3]

Liste = [1, 2, 3]
del Liste[0]
print(Liste)
# [2, 3]

3. Python Liste Sortieren mit sort und sorted

Listen können mit den Funktionen sort und sorted recht einfach neu sortiert werden, um zum Beispiel eine Liste in umgekehrter Reihenfolge zu sortieren, kannst du einfach die Methode sort der Liste mit dem Parameter reverse aufrufen.

liste = [1, 2, 3, 4, 5]
liste.sort(reverse=True)
print(liste)
# [5, 4, 3, 2, 1]

Sort hat auch einen Parameter key, mit dem du eine Funktion erstellen kannst, die das Feld der Liste bestimmt, nach dem sortiert werden soll. Dies macht natürlich nur Sinn mit komplexeren Datentypen, weswegen hier ein kurzes Beispiel folgt mit einer Liste aus Tupeln.

liste = [(42, 'Foo'), (21, 'Bar'), (2, 'Baz')]
def zweites(element):
    return element[1]

liste.sort(key=zweites)
print(liste)
# [(21, 'Bar'), (2, 'Baz'), (42, 'Foo')]

Dieses Beispiel lässt sich auch ganz einfach umbauen, so dass es anhand des numerischen Wertes statt anhand der Zeichenketten sortiert, indem man einfach eine leicht modifizierte Version der Funktion zweites als Parameter festlegt.

liste = [(42, 'Foo'), (21, 'Bar'), (2, 'Baz')]
def erstes(element):
    return element[0]

liste.sort(key=erstes)
print(liste)
# [(2, 'Baz'), (21, 'Bar'), (42, 'Foo')]

Das gleiche Ergebnis könnte man allerdings auch mit der Funktion sorted erreichen, da diese ebenfalls über den Parameter key verfügt:

liste = sorted(liste, key=erstes)
print(liste)
# [(2, 'Baz'), (21, 'Bar'), (42, 'Foo')]

Übrigens lassen sich so auch die einzelnen Worte eines Satzes alphabetisch sortieren:

liste = sorted("Dies ist ein Beispiel".split(), key=str.lower)
print(liste)
# ['Beispiel', 'Dies', 'ein', 'ist']

4. Python Listen zusammenfügen mit zip

Du kannst, wenn du möchtest, mit der Funktion zip zwei Listen zusammenführen, sodass du über beide zeitgleich in einer einzigen for-Schleife iterieren kannst.

liste_0 = [1, 2, 3]
liste_1 = [9, 8, 7]
liste = zip(liste_0, liste_1)
for a, b in liste:
    print(a, b)
# 1 9
# 2 8
# 3 7

5. Slicing

Mit dem sogenannten slicing kannst du einzelne Teile einer Liste aufrufen, wobei du Start- und Endwert bestimmen kannst. Um zum Beispiel das vierte und fünfte Element einer Liste zu erhalten, müsstest du diese quasi nur anhand ihrer Indexwerte einschränken, wie im Folgenden:

liste = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.".split()
print(liste[3:5])
# ['sit', 'amet,']

Zudem ist es weiterhin möglich, nur die letzten 3 Elemente zurückgeben zu lassen, wie hier:

print(liste[-3:])
# ['consectetur', 'adipiscing', 'elit.']

oder mittels des dritten Parameters, des Schritt-Parameters, nur jedes Dritte:

print(liste[::3])
# ['Lorem', 'sit', 'adipiscing']

6. Fazit

Listen sind sehr vielseitige und flexible Objekte und in Python wird uns die Benutzung dieser sehr einfach gemacht.

Hast du weitere Fragen, Anregungen, Anmerkungen? Hat dir dieser Beitrag gefallen? Schreib mir doch bitte einen Kommentar.



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren