Odebrat klíč ze slovníku v Pythonu / del vs dict.pop() vs s porozuměním

V tomto článku se budeme diskutovat o 6 různých způsobů, jak odstranit klíč z slovník v pythonu, tj.

  • Vyjměte klíč ze slovníku pomocí dict.pop().
  • odstraňte klíč ze slovníku pomocí pop () a zkuste / kromě.
  • odstraňte klíč ze slovníku pomocí položek () & pro smyčku.
  • odstraňte klíč ze slovníku pomocí položek () & porozumění slovníku.
  • odstraňte klíč ze slovníku pomocí del.
  • odstranění klíče ze slovníku pomocí del klíčového slova a zkuste/kromě.

Předpokládejme, že máme slovník string a int tj.

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

Nyní chceme-li odstranit položku z tohoto slovníku, jehož klíč je „na“. Existují různé způsoby, jak to udělat. Pojďme je prozkoumat jeden po druhém,

odstraňte klíč ze slovníku pomocí dict.pop ()

v Python dictionary class poskytuje metodu pop () pro odstranění položky ze slovníku na základě klíče, tj.

dictionary.pop(key)
  • pokud daný klíč existuje ve Slovníku, pak dict.pop () odstraní prvek s daným klíčem a vrátí jeho hodnotu.
  • pokud daný klíč ve slovníku neexistuje, vrátí zadanou výchozí hodnotu.
  • Pokud daný klíč neexistuje ve slovníku a Ne Výchozí hodnota je předána pop (), pak to bude hodit KeyError

Pojďme odstranit prvek z dict pomocí 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)

Výstup:

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

To vypouští páru klíč-hodnota ze slovníku, kde klíč byl „to“, a také se vrátil jeho hodnotu.

  • Python dict.pop () metoda podrobně vysvětlena
  • jak odstranit více klíčů ze slovníku při iteraci?

Odstranit Klíč ze slovníku, pokud existují, pomocí pop()

výchozí hodnota v pop() je nutné, protože pokud daný klíč není přítomen ve slovníku a ne výchozí hodnota je uvedena v pop (), pak to bude hodit keyError. Pojďme odstranit prvek, který není přítomen ve slovníku pomocí funkce pop (), a bez absolvování výchozí hodnotu argumentu v pop() tj.

key_to_be_deleted = 'where'word_freq_dict.pop(key_to_be_deleted)

Chyba:

KeyError: 'where'

pokud daný klíč v pop() funkci není přítomen ve slovníku a také výchozí hodnota není k dispozici, pak pop () může hodit KeyError. Tak, aby se zabránilo, že chyba vždy bychom měli zkontrolovat, pokud klíč neexistuje ve slovníku, než se snaží smazat pomocí funkce pop (), a to bez jakékoliv výchozí hodnotu, tj.

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

Výstup:

Key where is not in the dictionary

můžeme také použít try/s výjimkou zvládnout to chyba,

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

Výstup:

Key where is not in the dictionary

Vyjměte klíč ze slovníku pomocí items() & pro smyčce

Iterovat přes klíč a filtr klíč, který musí být odstraněn, tj.

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

Výstup:

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

vytvořili Jsme nový dočasný slovník a pak iterovat přes všechny páry klíč-hodnota původního slovníku. Během iterace jsme zkopírovali pár klíč-hodnota do nového dočasného slovníku pouze v případě, že klíč není roven klíči, který má být odstraněn. Jakmile iterace skončí, zkopírovali jsme nový dočasný obsah slovníku do původního slovníku. V tomto přístupu nehrozí žádné riziko KeyError atd.

Vyjměte klíč ze slovníku pomocí items() & Slovník s Porozuměním

s Použitím logiky předchozího příkladu můžeme filtrovat obsah slovníku na základě klíčových pomocí items() & dictionary comprehension,

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)

Výstup:

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

Jsme opakoval přes páry klíč-hodnota slovníku a postavena nová slovník pomocí slovníku s porozuměním. Ale vyloučili jsme dvojici, kde se klíč shodoval s odstraněným klíčem. Pak jsme tento nový slovník přiřadili k původnímu slovníku. To dalo efekt, že položka ze slovníku je odstraněn na základě klíče.

výhodou tohoto přístupu je tedy to, že se nemusíte obávat chyby klíče v případě, že klíč ve slovníku neexistuje.

Vyjměte klíč ze slovníku pomocí del

můžeme použít příkazu del odstranit pár klíč-hodnota ze slovníku na základě klíčových,

del dict

Nejprve vyberte prvek ze slovníku předáním klíče na index operátor, a pak ji přenést na del prohlášení. Pokud je klíč ve slovníku přítomen, odstraní klíč a odpovídající hodnotu ze slovníku. Ale v případě, že daný klíč není přítomen ve Slovníku, pak to bude hodit chybu tj KeyError.

Pojďme ji použít k odstranění klíče z výše uvedených slovník,

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

Výstup:

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

To smazané položky ze slovníku, kde klíč byl „v“. Ale co když použijeme příkaz del s klíčem, který ve slovníku neexistuje, pak může hodit KeyError. Například,

key_to_be_deleted = 'where'del word_freq_dict

výstup:

KeyError: 'where'

Proto bychom měli vždy zkontrolovat, zda existuje klíč ve slovníku, než se snaží je odstranit pomocí del klíčové slovo, aby se zabránilo KeyError,

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

Výstup:

Key where is not in the dictionary

Odstranění klíče ze slovníku pomocí del klíčové slovo a try/except

nechceme-Li, kdyby, podívejte se před voláním del, pak můžeme použít try/s výjimkou příliš. Pokusme se odstranit klíč, který ve slovníku neexistuje, a chytit chybu také pomocí 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')

výstup:

Key where is not in the dictionary

závěr:

jednalo se o 6 různých způsobů, jak odstranit klíč ze slovníku v Pythonu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

Previous post 8 příznaky anorexie athletica-posedlost nadměrné cvičení
Next post nebezpečí skládek zkoušek