So entfernst du in Python Elemente aus Listen

    Avatarbild von Patrick
    Patrick

    veröffentlicht am: 16.04.2020
    zuletzt aktualisiert am: 02.02.2023

    So entfernst du in Python Elemente aus einer Liste

    Manchmal ist es nötig, Elemente aus Listen zu löschen.
    Dies kann mit einem einfachen Schlüsselwort in Python, nämlich del, bewerkstelligt werden. Wie, das zeige ich dir im Folgenden.

    Löschen von Elementen aus Listen

    Es gibt einige Möglichkeiten, Elemente aus Listen zu löschen.
    Die Einfachsten hiervon sind wohl das Schlüsselwort del, welches man einfach vor dem Element, das man löschen möchte, angeben kann oder die Methode remove mit der man Werte direkt aus einer Liste löschen kann.

    Elemente löschen mit remove

    Am Einfachsten ist es wohl, ein Element aus einer Liste mit dem Befehl list.remove zu löschen, was ich dir hier zeige:

    Liste = ['foo', 'bar', 'baz']
    Liste.remove('foo')
    print(Liste)
    # ['bar', 'baz']

    Das Schlüsselwort del mit Listen

    Im Folgenden Beispiel siehst du eine Liste mit 3 Elementen, von denen das an der Indexposition 1 mittels del entfernt wird.

    Liste = ['foo', 'bar', 'baz']
    print(Liste, len(Liste))
    # ['foo', 'bar', 'baz'] 3
    del Liste[1]
    print(Liste, len(Liste))
    # ['foo', 'baz'] 2

    Und so einfach geht’s, unsere Liste mit vormals 3 Elementen hat nun nur noch 2.

    Eigene Klassen mit Unterstützung für del

    Das Schlüsselwort del lässt sich allerdings an weiteren Stellen verwenden, als nur zum Löschen von Elementen aus Listen.
    Denn auch in eigenen Klassen kannst du eine Art Destruktor implementieren, der auch jedes Mal aufgerufen wird, wenn del auf deine Klasse angewendet wird.
    Um dieses Verhalten zu erreichen, musst du lediglich die magic method __del__ in deiner Klasse implementieren.

    class Beispiel(object):
        def __del__(self):
            print("Lösche Beispiel")
    
    bsp = Beispiel()
    del bsp
    # Lösche Beispiel

    Elemente löschen mit list.pop

    Eine weitere Möglichkeit Listen um ein paar Elemente zu reduzieren, ist die Funktion pop. Im Folgenden Beispiel möchte ich pop benutzen, um Elemente einer Liste auszugeben. Und zwar bis zu einem Element mit einem bestimmten Wert, an dem ich die Schleife unterbrechen möchte.

    Liste = ['foo', 'Auenland', 42, 'Todesstern']
    while True:
        element = Liste.pop()
        print(element)
        # Todesstern
        # 42
        if element == 42:
            break
    print(Liste)
    # ['foo', 'Auenland']

    Hier sehen wir, dass pop ohne Parameter aufgerufen nach der Reihe alle Elemente rückwärts ausgibt, was dem selben Verhalten entspricht, wie wenn ich pop(-1) geschrieben hätten.
    Um nun alle Elemente der Reihe nach zu erhalten, müssen wir pop mit einem Index, und zwar 0, aufrufen, wie hier:

    Liste = ['foo', 'Auenland', 42, 'Todesstern']
    while True:
        element = Liste.pop(0)
        print(element)
        # foo
        # Auenland
        # 42
        if element == 42:
            break
    print(Liste)
    # ['Todesstern']

    Fazit

    Löschen von Elementen aus Listen in Python ist mittels des Schlagwortes del sowie der Funktion pop ein Leichtes.
    Zudem kannst du mit der magic method __del__ dein eigenes Verhalten für deine Klassen implementieren, um del bei diesen zu verwenden.

    Hast du noch Fragen oder Anregungen? Hat dir dieser Beitrag gefallen? Bitte lass es mich in den Kommentaren wissen.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig