Wie man ein Element aus einem Python-Dictionary entfernt

Aliaksei Yursha 30 Januar 2023
  1. Die del Anweisung zum Entfernen des Python-Dictionaryelements
  2. Die dict.pop() Funktion zum Entfernen des Python-Dictionary-Elements
  3. Löschen mehrerer Elemente aus einem Python-Dictionary
  4. Leistungsmerkmale
Wie man ein Element aus einem Python-Dictionary entfernt

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