Wie man ein Element aus einem Python-Dictionary entfernt
-
Die
del
Anweisung zum Entfernen des Python-Dictionaryelements -
Die
dict.pop()
Funktion zum Entfernen des Python-Dictionary-Elements - Löschen mehrerer Elemente aus einem Python-Dictionary
- Leistungsmerkmale
Manchmal enthält Ihr Python-Dictionary einen Schlüssel oder mehrere Schlüssel, die Sie löschen möchten. Das können Sie auf verschiedene Weise tun.
Die del
Anweisung zum Entfernen des Python-Dictionaryelements
Ein Ansatz ist die Verwendung der in Python eingebauten del
Anweisung.
>>> meal = {'fats': 10, 'proteins': 10, 'carbohydrates': 80}
>>> del meal['fats']
>>> meal
{'proteins': 10, 'carbohydrates': 80}
Beachten Sie, dass wenn Sie versuchen, ein Element durch einen Schlüssel zu löschen, der nicht im Dictionary vorhanden ist,
Die Python Laufzeit wird einen KeyError
auslösen.
>>> meal = {'fats': 10, 'proteins': 10, 'carbohydrates': 80}
>>> del meal['water']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'water'
Die dict.pop()
Funktion zum Entfernen des Python-Dictionary-Elements
Ein anderer Ansatz ist die Verwendung der dict.pop()
Funktion.
Der Vorteil dieser Methode ist, dass sie es Ihnen erlaubt, die
der Standardwert, der zurückgegeben wird, wenn der angeforderte Schlüssel nicht existiert
im Dictionary.
>>> meal = {'fats': 10, 'proteins': 10, 'carbohydrates': 80}
>>> meal.pop('water', 3000)
3000
>>> meal.pop('fats', 3000)
10
>>> meal
{'proteins': 10, 'carbohydrates': 80}
Beachten Sie, dass, wenn Sie nicht den Standardwert für die Rückgabe und die angeforderte
Taste nicht existiert, erhalten Sie auch einen Laufzeitfehler, wie del
oben.
>>> meal = {'fats': 10, 'proteins': 10, 'carbohydrates': 80}
>>> meal.pop('water')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'water'
Löschen mehrerer Elemente aus einem Python-Dictionary
Wenn Sie mehrere Elemente in einem Rutsch aus einem Dictionary löschen müssen,
Python 3 bietet handliche Listenbegriffe, die Sie für diesen Zweck einsetzen können.
>>> meal = {'fats': 10, 'proteins': 10, 'carbohydrates': 80}
>>> [meal.pop(key) for key in ['fats', 'proteins']]
[10, 10]
>>> meal
{'carbohydrates': 80}
Beachten Sie, dass Python mit dem obigen Ansatz trotzdem abstürzt, wenn einer der übergebenen Schlüssel nicht im Dictionary steht.
Um dieses Problem zu umgehen, können Sie ein zweites Argument an dict.pop()
als Standard-Rückgabewert übergeben.
>>> meal = {'fats': 10, 'proteins': 10, 'carbohydrates': 80}
>>> [meal.pop(key, None) for key in ['water', 'sugars']]
[None, None]
>>> meal
{'fats': 10, 'proteins': 10, 'carbohydrates': 80}
Leistungsmerkmale
Die Verwendung der del
Anweisung und dict.pop()
haben unterschiedliche Leistungsmerkmale.
>>> from timeit import timeit
>>> timeit("meal = {'fats': 10, 'proteins': 10, 'carbohydrates': 80}; del meal['fats']")
0.12977536499965936
>>> timeit("meal = {'fats': 10, 'proteins': 10, 'carbohydrates': 80}; meal.pop('fats', None)")
0.21620816600079706
Wie aus den obigen Zeitangaben hervorgeht, ist die del
Anweisung fast doppelt so schnell.
Allerdings ist dict.pop()
mit einem Fallback-Wert sicherer, da er Ihnen hilft, Laufzeitfehler zu vermeiden.
Benutzen Sie Ersteres, wenn Sie sich sicher sind, dass Schlüssel im Dictionary vorhanden sein müssen, und bevorzugen Sie andernfalls Letzteres.
Verwandter Artikel - Python Dictionary
- Wie man prüft, ob ein Schlüssel in einem Dictionary in Python vorhanden ist
- Konvertieren eines Dictionaries in eine Liste in Python
- So erhalten Sie alle Dateien eines Verzeichnisses
- Wie finde ich den Maximalwert im Python-Dictionary
- Wie man ein Python-Dictionary nach Wert sortiert
- Wie man zwei Wörterbücher in Python 2 und 3 zusammenführen kann