Verwijder een sleutel uit het woordenboek in Python | del vs dict.pop() vs comprehension

in dit artikel zullen we 6 verschillende manieren bespreken om een sleutel uit een woordenboek in python te verwijderen, d.w.z.

  • Verwijder een sleutel uit een woordenboek met dict.pop().
  • Verwijder een sleutel uit een woordenboek met pop () en probeer/except.
  • Verwijder een sleutel uit een woordenboek met behulp van items () & voor loop.
  • Verwijder een sleutel uit een woordenboek met behulp van items () & begrijpend woordenboek.
  • Verwijder een sleutel uit een woordenboek met del.
  • een sleutel uit een woordenboek verwijderen met behulp van Del keyword en proberen / except.

stel dat we een woordenboek van string en int hebben, d.w.z.

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

nu willen we een item uit dit woordenboek verwijderen waarvan de sleutel “at”is. Er zijn verschillende manieren om dat te doen. Laten we ze één voor één onderzoeken,

Verwijder een sleutel uit een woordenboek met dict.pop()

in Python dictionary class biedt een methode pop () om een item uit het woordenboek te verwijderen op basis van sleutel i. e.

dictionary.pop(key)
  • als de gegeven sleutel bestaat in het woordenboek dan dict.pop() verwijdert het element met de gegeven sleutel en retourneert zijn waarde.
  • als de opgegeven sleutel niet in het woordenboek voorkomt, geeft het de opgegeven standaardwaarde terug.
  • als de gegeven sleutel niet bestaat in het woordenboek en er geen standaard waarde wordt doorgegeven aan pop() dan zal het KeyError

laten we een element uit dict verwijderen met behulp van pop(),

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)

uitvoer:

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

het verwijderde het sleutel-waarde paar uit het woordenboek waar de sleutel ‘dit’ was en gaf ook zijn waarde terug.

  • Python dict.pop () methode in detail uitgelegd
  • hoe meerdere sleutels uit het woordenboek te verwijderen tijdens het itereren?

Verwijder een sleutel uit het woordenboek als deze bestaat met pop ()

de standaardwaarde in pop() is noodzakelijk, omdat als de opgegeven sleutel niet aanwezig is in het woordenboek en er geen standaardwaarde wordt gegeven in pop () dan zal keyError worden gegooid. Laten we een element verwijderen dat niet aanwezig is in het woordenboek met behulp van de pop() functie en zonder een standaard waarde argument in pop () dat wil zeggen

key_to_be_deleted = 'where'word_freq_dict.pop(key_to_be_deleted)

fout:

KeyError: 'where'

als de opgegeven sleutel in pop() functie niet aanwezig is in het woordenboek en ook de standaardwaarde niet is opgegeven, dan kan pop() KeyError gooien. Dus om die fout te voorkomen moeten we altijd controleren of de sleutel in het woordenboek bestaat voordat we proberen om die te verwijderen met behulp van pop () functie en zonder enige standaard waarde dwz

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')

Output:

Key where is not in the dictionary

we kunnen ook de try / except gebruiken om die fout af te handelen,

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')

uitvoer:

Key where is not in the dictionary

Verwijder een sleutel uit een woordenboek met behulp van items () & voor lus

herhaal de sleutel en filter de sleutel die moet worden verwijderd, d.w.z.

# 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)

Output:

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

We hebben een nieuw tijdelijk woordenboek gemaakt en dan herhalen we alle sleutelwaardeparen van het originele woordenboek. Tijdens het itereren hebben we het sleutel-waardepaar alleen naar een nieuw tijdelijk woordenboek gekopieerd als de sleutel niet gelijk is aan de te verwijderen sleutel. Zodra de iteratie voorbij is, hebben we de nieuwe tijdelijke woordenboek inhoud gekopieerd naar het originele woordenboek. In deze aanpak is er geen risico van KeyError etc.

Verwijder een sleutel uit een woordenboek met behulp van items () & begrijpend woordenboek

met behulp van de logica van het vorige voorbeeld kunnen we de inhoud van het woordenboek filteren op basis van sleutels met behulp van items () & begrijpend woordenboek,

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)

uitvoer:

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

We itereerden de sleutelwaardeparen van het woordenboek en construeerden een nieuw woordenboek met woordenboekbegrip. Maar we hebben het paar uitgesloten waar de sleutel overeenkomt met de sleutel die verwijderd moet worden. Vervolgens hebben we dit nieuwe woordenboek toegewezen aan het originele woordenboek. Het gaf een effect dat item uit het woordenboek wordt verwijderd op basis van de sleutel.

daarom is het voordeel van deze aanpak dat u zich geen zorgen hoeft te maken over de Sleutelfout in het geval dat de sleutel niet in het woordenboek voorkomt.

Verwijder een sleutel uit een woordenboek met del

we kunnen de Del-instructie gebruiken om een sleutel-waardepaar uit het woordenboek te verwijderen op basis van de sleutel,

del dict

selecteer eerst het element uit een woordenboek door de sleutel door te geven in de subscript operator en geef het vervolgens door aan de Del statement. Als de sleutel aanwezig is in het woordenboek dan zal het de sleutel en bijbehorende waarde uit het woordenboek verwijderen. Maar als de gegeven sleutel niet aanwezig is in het woordenboek dan zal het een fout werpen, dat wil zeggen KeyError.

laten we het gebruiken om de sleutel uit het bovengenoemde woordenboek te verwijderen,

# 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)

uitvoer:

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

het verwijderde het item uit het woordenboek waar de sleutel was ‘at’. Maar wat als we een Del statement gebruiken met een sleutel die niet bestaat in het woordenboek, dan kan het KeyError gooien. Bijvoorbeeld:,

key_to_be_deleted = 'where'del word_freq_dict

uitvoer:

KeyError: 'where'

daarom moeten we altijd controleren of de sleutel in het woordenboek bestaat voordat we proberen ze te verwijderen met behulp van het Del-trefwoord om de KeyError te vermijden,

# 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')

uitvoer:

Key where is not in the dictionary

het verwijderen van een sleutel uit een woordenboek met behulp van Del keyword en try/except

als we geen if-controle willen voordat we del aanroepen, dan kunnen we ook de try/except gebruiken. Laten we proberen om een sleutel die niet bestaat in het woordenboek te verwijderen en de fout te vangen met behulp van try / except,

# 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')

uitvoer:

Key where is not in the dictionary

conclusie:

dit waren de 6 verschillende manieren om een sleutel uit een woordenboek in python te verwijderen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

Previous post 8 tekenen van anorexia athletica — an obsession with excessive exercise
Next post the Dangers of Exam Dumps