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.