Skip to content

Entfernen eines Elements aus einer Liste in Python (clear, pop, remove, del)

Python

Verwenden Sie in Python die Listenmethoden clear(), pop() und remove(), um Elemente (Elemente) aus einer Liste zu entfernen. Es ist auch möglich, Elemente mit der del-Anweisung zu löschen, indem Sie eine Position oder einen Bereich mit einem Index oder Slice angeben.

  • Alle Elemente entfernen:clear()
  • Entfernen Sie ein Element nach Index und erhalten Sie seinen Wert:pop()
  • Artikel nach Wert entfernen:remove()
  • Elemente nach Index oder Segment entfernen:del
  • Entferne Elemente, sterben sterben Bedingung erfüllen: Listenverständnisse

Informationen zum Hinzufügen von Elementen zur Liste FINDEN SIE im following Artikel.

Alle Elemente entfernen:clear()

Mit clear() can SIE alle Einträge aus der Liste entfernen.

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

l.clear()
print(l)
# []

Entfernen Sie ein Element nach Index und erhalten Sie seinen Wert:pop()

Sie können das Element an der angegebenen Position entfernen und seinen Wert mit pop() abrufen.

Der Index am Anfang ist 0 (nullbasierte Indizierung).

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(l.pop(0))
# 0

print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

print(l.pop(3))
# 4

print(l)
# [1, 2, 3, 5, 6, 7, 8, 9]

Sie können negative Werte verwenden, um die Position vom Ende anzugeben. Der Index am Ende ist -1.

print(l.pop(-2))
# 8

print(l)
# [1, 2, 3, 5, 6, 7, 9]

Wenn das Argument weggelassen WIRD, WIRD das letzte Element gelöscht.

print(l.pop())
# 9

print(l)
# [1, 2, 3, 5, 6, 7]

Die Angabe eines nicht vorhandenen Index löst einen Fehler aus.

# print(l.pop(100))
# IndexError: pop index out of range

Beachten Sie, dass pop(0), das erste Element entfernt, eine O(n)-Operation und ineffizient ist. Informationen zur Rechenkomplexität verschiedener Operationen auf der Liste FINDEN SIE im offiziellen Wiki.

Der Deque-Typ WIRD im Sammlungsmodul der Standardbibliothek bereitgestellt, um das erste Element mit O(1) zu entfernen. Wenn Sie beispielsweise Daten als Warteschlange (FIFO) behandeln möchten, ist es effizienter, deque zu verwenden.

Artikel nach Wert entfernen:remove()

Mit remove() can SIE das erste Element aus der Liste entfernen, dessen Wert gleich dem angegebenen Wert ist.

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']

l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']

Wenn die Liste mehr als einen enthält, der dem angegebenen Wert entspricht, wird nur der erste gelöscht.

l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']

Die Angabe eines nicht vorhandenen Werts löst einen Fehler aus.

# l.remove('xxx')
# ValueError: list.remove(x): x not in list

Elemente nach Index oder Segment entfernen:del

clear(), pop() und remove() sind Methoden von list. Sie können Elemente auch mit del-Anweisungen aus einer Liste entfernen.

Geben Sie das zu löschende Element nach Index an. Der erste Index ist 0 und der letzte ist -1.

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[0]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[-1]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8]

del l[6]
print(l)
# [1, 2, 3, 4, 5, 6, 8]

Sie können mehrere Elemente mit Slice löschen.

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

del l[2:5]
print(l)
# [0, 1, 5, 6, 7, 8, 9]

l = list(range(10))
del l[:3]
print(l)
# [3, 4, 5, 6, 7, 8, 9]

l = list(range(10))
del l[4:]
print(l)
# [0, 1, 2, 3]

l = list(range(10))
del l[-3:]
print(l)
# [0, 1, 2, 3, 4, 5, 6]

Es ist auch möglich, alle Artikel zu löschen, indem Sie das gesamte Sortiment angeben.

l = list(range(10))
del l[:]
print(l)
# []

Sie können den Schritt auch als [start:stop:step] angeben.

l = list(range(10))
del l[2:8:2]
print(l)
# [0, 1, 3, 5, 7, 8, 9]

l = list(range(10))
del l[::3]
print(l)
# [1, 2, 4, 5, 7, 8]

Weitere Informationen zu Scheiben finden Sie im following Artikel.

Entferne Elemente, sterben sterben Bedingung erfüllen: Listenverständnisse

Das Entfernen von Elementen, die die Bedingung erfüllen, entspricht dem Extrahieren von Elementen, die die Bedingung nicht erfüllen.

Zu diesem Zweck werden Listenverständnisse verwendet.

Ein Beispiel für das Entfernen ungerader oder gerader Elemente (= Beibehalten gerader oder ungerader Elemente) ist wie folgt. % ist der Restoperator und i % 2 ist der Rest der Division von i durch 2.

Beim Listenverständnis wird eine neue Liste generiert. Anders als bei der bisher eingeführten listartigen Methode oder der del-Anweisung wird die ursprüngliche Liste nicht verändert.

l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print([i for i in l if i % 2 == 0])
# [0, 2, 4, 6, 8]

print([i for i in l if i % 2 != 0])
# [1, 3, 5, 7, 9]

print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Im following Artikel FINDEN SIE Laptops zum Extrahieren von Elementen mithilfe von Listenverständnissen.

Andere Beispiele sind wie folgt.

l = ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'David']

print([s for s in l if s != 'Bob'])
# ['Alice', 'Charlie', 'David']

print([s for s in l if s.endswith('e')])
# ['Alice', 'Charlie']

Im following Artikel FINDEN SIE Beispiele für eine Liste von Zeichenfolgen.

Wenn Sie doppelte Elemente entfernen möchten, verwenden Sie set().

print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']