Was ist der Unterschied zwischen del, remove und pop auf Python-Listen

  1. Python List Entfernen nach Wert
  2. Python-Liste Entfernen nach Index
  3. Python-Liste entfernen mit del

Wie es oft geht, bietet Python mehrere Möglichkeiten, um das gleiche zu erreichen.

Wenn Sie ein Element aus einer Liste löschen müssen, können Sie jedes beliebige list.remove() oder list.pop() Funktionen oder die eingebaute del Anweisung.

In den folgenden Beispielen werden wir jeden dieser Ansätze behandeln und ihre Unterschiede und Kompromisse diskutieren.

Python List Entfernen nach Wert

list.remove() entfernt den ersten Eintrag in der Liste, dessen Wert gleich dem übergebenen Argument ist. Wenn Sie diese Methode verwenden, wissen Sie normalerweise nicht oder es ist Ihnen egal, was der Index des zu entfernenden Elements ist.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.remove('Cindy')
>>> names
['Bob', 'Noah']

Seien Sie vorsichtig, wenn Sie diese Methode verwenden. Wenn ein Element, das Sie versuchen zu löschen, nicht in der Liste existiert, wird die Python Laufzeit einen ValueError ausgeben.

>>> names = ['Bob', 'Noah']
>>> names.remove('Cindy')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list

Um dieses Problem zu umgehen, müssen Sie prüfen, ob ein Element existiert in der Liste, bevor Sie versuchen, sie zu list.remove().

>>> names = ['Bob', 'Noah']
>>> if 'Cindy' in names:
...   names.remove('Cindy')
...
>>>

Python-Liste Entfernen nach Index

Wenn Sie den Index eines Elements kennen, das Sie entfernen möchten, können Sie die list.pop() Methode verwenden.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop(1)
'Cindy'
>>> names
['Bob', 'Noah']

list.pop() entfernt ein Element am angegebenen Index und gibt es zurück.

Wenn Du list.pop() keinen Index gibst, wird das letzte Element der Liste entfernt.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> names.pop()
'Noah'
>>> names
['Bob', 'Cindy']

Python-Liste entfernen mit del

Eine andere Möglichkeit, ein Element aus einer Liste per Index zu entfernen, ist die Verwendung der del eingebauten Anweisung. Anders als list.pop() gibt die del Anweisung keinen entfernten Wert zurück.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[1]
>>> names
['Bob', 'Noah']

Die del Anweisung ist auch flexibler als list.pop(). Sie können es benutzen, um Wertebereiche aus der Liste zu entfernen.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[0:2]
>>> names
['Noah']

Sie können es auch benutzen, um die gesamte Liste zu löschen.

>>> names = ['Bob', 'Cindy', 'Noah']
>>> del names[:]
>>> names
[]

Wie Sie von oben sehen können, hat jeder Ansatz leicht unterschiedliche Anwendungsfälle. Trotzdem, wenn Sie nur ein einzelnes Element aus der Liste entfernen müssen, ohne sich an seinen Wert zu erinnern, dann werden beide Methoden funktionieren.

Verwenden Sie diejenige, die sich im weiteren Kontext Ihres Codes besser liest.

Verwandter Artikel - Python List

  • Wie man eine Liste in Python verflacht
  • So prüfen Sie schnell, ob ein Wert in der Python-Liste existiert
  • comments powered by Disqus