Wie man ein Element aus einem Python-Wörterbuch entfernt

  1. Die del Anweisung zum Entfernen des Python-Wörterbuchelements
  2. Die dict.pop() Funktion zum Entfernen des Python-Wörterbuch-Elements
  3. Löschen mehrerer Elemente aus einem Python-Wörterbuch
  4. Leistungsmerkmale

Manchmal enthält Ihr Python-Wörterbuch 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-Wörterbuchelements

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 Wörterbuch 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-Wörterbuch-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 Wörterbuch.

>>> 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-Wörterbuch

Wenn Sie mehrere Elemente in einem Rutsch aus einem Wörterbuch 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 Wörterbuch 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 Wörterbuch vorhanden sein müssen, und bevorzugen Sie andernfalls Letzteres.

Verwandter Artikel - Python dictionary

  • Wie man zwei Wörterbücher in Python 2 und 3 zusammenführen kann
  • comments powered by Disqus