Was ist der Unterschied zwischen del, remove und pop auf Python-Listen
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
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert