Entfernen Sie einen Schlüssel aus dem Wörterbuch in Python / del vs dict.pop() vs comprehension

In diesem Artikel werden wir 6 verschiedene Möglichkeiten diskutieren, einen Schlüssel aus einem Wörterbuch in Python zu löschen, dh

  • Entfernen Sie einen Schlüssel aus einem Wörterbuch mit dict .Pop().
  • Löschen Sie einen Schlüssel aus einem Wörterbuch mit pop() und try/except.
  • Entfernen Sie einen Schlüssel aus einem Wörterbuch mit items() & for-Schleife.
  • Entfernen Sie einen Schlüssel aus einem Wörterbuch mit items() & Wörterbuchverständnis.
  • Entfernen Sie einen Schlüssel aus einem Wörterbuch mit del.
  • Löschen eines Schlüssels aus einem Wörterbuch mit dem Schlüsselwort del und try/except.

Angenommen, wir haben ein Wörterbuch von string und int, dh

# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}

Jetzt möchten wir ein Element aus diesem Wörterbuch entfernen, dessen Schlüssel „at“ ist. Es gibt verschiedene Möglichkeiten, dies zu tun. Lassen Sie uns sie einzeln untersuchen,

Entfernen Sie einen Schlüssel aus einem Wörterbuch mit dict .pop()

In Python dictionary class bietet eine Methode pop(), um ein Element aus dem Wörterbuch basierend auf dem Schlüssel zu löschen, dh.

dictionary.pop(key)
  • Wenn der angegebene Schlüssel im Wörterbuch vorhanden ist, diktieren Sie.pop() entfernt das Element mit dem angegebenen Schlüssel und gibt seinen Wert zurück.
  • Wenn der angegebene Schlüssel nicht im Wörterbuch vorhanden ist, wird der angegebene Standardwert zurückgegeben.
  • Wenn der angegebene Schlüssel nicht im Wörterbuch vorhanden ist und kein Standardwert an pop() übergeben wird, wird KeyError

Lassen Sie uns ein Element mit pop aus dict löschen(),

key_to_be_deleted = 'this'# As 'this' key is present in dict, so pop() will delete# its entry and return its valueresult = word_freq_dict.pop(key_to_be_deleted, None)print("Deleted item's value = ", result)print("Updated Dictionary :", word_freq_dict)

Ausgang:

Deleted item's value = 43Updated Dictionary : {'Hello': 56, 'at': 23, 'test': 43}

Es löschte das Schlüssel-Wert-Paar aus dem Wörterbuch, in dem der Schlüssel ‚this‘ war, und gab auch seinen Wert zurück.

  • Python dict.pop() -Methode im Detail erklärt
  • Wie entferne ich mehrere Schlüssel aus dem Wörterbuch während der Iteration?

Delete a Key from dictionary if exist using pop()

Der Standardwert in pop() ist notwendig, denn wenn der angegebene Schlüssel nicht im Wörterbuch vorhanden ist und kein Standardwert in pop() angegeben ist, wird KeyError . Löschen wir ein Element, das nicht im Wörterbuch vorhanden ist, mit der Funktion pop () und ohne ein Standardwertargument in pop () zu übergeben, dh

key_to_be_deleted = 'where'word_freq_dict.pop(key_to_be_deleted)

Fehler:

KeyError: 'where'

Wenn der angegebene Schlüssel in der Funktion pop() nicht im Wörterbuch vorhanden ist und auch kein Standardwert angegeben ist, kann pop() KeyError auslösen. Um diesen Fehler zu vermeiden, sollten wir immer überprüfen, ob der Schlüssel im Wörterbuch vorhanden ist, bevor wir versuchen, diesen mit der Funktion pop () und ohne Standardwert zu löschen, dh

key_to_be_deleted = 'where'if key_to_be_deleted in word_freq_dict: word_freq_dict.pop(key_to_be_deleted)else: print(f'Key {key_to_be_deleted} is not in the dictionary')

Ausgabe:

Key where is not in the dictionary

Wir können auch den try / except verwenden, um diesen Fehler zu behandeln,

key_to_be_deleted = 'where'try: word_freq_dict.pop(key_to_be_deleted)except KeyError: print(f'Key {key_to_be_deleted} is not in the dictionary')

Ausgang:

Key where is not in the dictionary

Entfernen Sie einen Schlüssel aus einem Wörterbuch mit items() & for loop

Iterieren Sie über den Schlüssel und filtern Sie den Schlüssel, der gelöscht werden muss, dh

# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}key_to_be_deleted = 'at'new_dict = {}for key, value in word_freq_dict.items(): if key is not key_to_be_deleted: new_dict = valueword_freq_dict = new_dictprint(word_freq_dict)

Ausgabe:

{'Hello': 56, 'test': 43, 'this': 43}

Wir haben ein neues temporäres Wörterbuch erstellt und durchlaufen dann alle Schlüssel-Wert-Paare des ursprünglichen Wörterbuchs. Während der Iteration haben wir das Schlüssel-Wert-Paar nur dann in ein neues temporäres Wörterbuch kopiert, wenn der Schlüssel nicht dem zu löschenden Schlüssel entspricht. Sobald die Iteration beendet ist, haben wir den Inhalt des neuen temporären Wörterbuchs in das ursprüngliche Wörterbuch kopiert. Bei diesem Ansatz besteht kein Risiko für KeyError usw.

Entfernen eines Schlüssels aus einem Wörterbuch mithilfe von items() & Wörterbuchverständnis

Mit der Logik des vorherigen Beispiels können wir den Inhalt des Wörterbuchs basierend auf dem Schlüssel mithilfe von items() filtern & Wörterbuchverständnis,

word_freq_dict = {key: value for key, value\ in word_freq_dict.items()\ if key is not key_to_be_deleted}print(word_freq_dict)

Ausgang:

{'Hello': 56, 'test': 43, 'this': 43}

Wir haben die Schlüssel-Wert-Paare des Wörterbuchs durchlaufen und mithilfe des Wörterbuchverständnisses ein neues Wörterbuch erstellt. Wir haben jedoch das Paar ausgeschlossen, bei dem der Schlüssel mit dem zu löschenden Schlüssel übereinstimmte. Dann haben wir dieses neue Wörterbuch dem ursprünglichen Wörterbuch zugewiesen. Es gab einen Effekt, dass das Element aus dem Wörterbuch basierend auf dem Schlüssel gelöscht wird.

Daher besteht der Vorteil dieses Ansatzes darin, dass Sie sich keine Gedanken über den Schlüsselfehler machen müssen, falls der Schlüssel nicht im Wörterbuch vorhanden ist.

Entfernen eines Schlüssels aus einem Wörterbuch mit del

Wir können die del-Anweisung verwenden, um ein Schlüssel-Wert-Paar basierend auf dem Schlüssel aus dem Wörterbuch zu entfernen,

del dict

Wählen Sie zuerst das Element aus einem Wörterbuch aus, indem Sie den Schlüssel im Indexoperator übergeben, und übergeben Sie ihn dann an die del-Anweisung. Wenn der Schlüssel im Wörterbuch vorhanden ist, werden der Schlüssel und der entsprechende Wert aus dem Wörterbuch gelöscht. Wenn der angegebene Schlüssel jedoch nicht im Wörterbuch vorhanden ist, wird ein Fehler ausgegeben, dh KeyError .

Verwenden wir es, um den Schlüssel aus dem oben genannten Wörterbuch zu entfernen,

# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}# Deleting an item from dictionary using deldel word_freq_dictprint(word_freq_dict)

Ausgang:

{'Hello': 56, 'test': 43, 'this': 43}

Es löschte das Element aus dem Wörterbuch, in dem der Schlüssel ‚at‘ war. Aber was ist, wenn wir eine del-Anweisung mit einem Schlüssel verwenden, der nicht im Wörterbuch vorhanden ist, dann kann es KeyError werfen. Zum Beispiel,

key_to_be_deleted = 'where'del word_freq_dict

Ausgang:

KeyError: 'where'

Daher sollten wir immer überprüfen, ob der Schlüssel im Wörterbuch vorhanden ist, bevor wir versuchen, sie mit dem Schlüsselwort del zu löschen, um den Schlüsselfehler zu vermeiden,

# If key exist in dictionary then delete it using del.key_to_be_deleted = 'where'if key_to_be_deleted in word_freq_dict: del word_freq_dictelse: print(f'Key {key_to_be_deleted} is not in the dictionary')

Ausgang:

Key where is not in the dictionary

Löschen eines Schlüssels aus einem Wörterbuch mit dem Schlüsselwort del und try/except

Wenn wir vor dem Aufruf von del keine if-Prüfung wünschen, können wir auch try/except verwenden. Versuchen wir, einen Schlüssel zu löschen, der nicht im Wörterbuch vorhanden ist, und fangen den Fehler auch mit try / except ab,

# If key exist in dictionary then delete it using del.key_to_be_deleted = 'where'try: del word_freq_dictexcept KeyError: print(f'Key {key_to_be_deleted} is not in the dictionary')

Ausgang:

Key where is not in the dictionary

Fazit:

Dies waren die 6 verschiedenen Möglichkeiten, einen Schlüssel aus einem Wörterbuch in Python zu entfernen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Previous post 8 anzeichen von Anorexia athletica – eine Obsession mit übermäßiger Bewegung
Next post Die Gefahren von Exam Dumps