távolítson el egy kulcsot a szótárból a Python | del vs dict alkalmazásban.pop () vs megértés

ebben a cikkben 6 különböző módot fogunk megvitatni egy kulcs törlésére a Python szótárából, azaz

  • távolítsa el a kulcsot a szótárból a dict használatával.pop ().
  • töröljön egy kulcsot a szótárból a pop() használatával, majd próbálja ki a/except parancsot.
  • kulcs eltávolítása a szótárból az items() & for loop használatával.
  • kulcs eltávolítása a szótárból az elemek használatával() & Szótárértés.
  • kulcs eltávolítása a szótárból a del használatával.
  • kulcs törlése a szótárból a del kulcsszó használatával, majd próbálja meg/kivéve.

tegyük fel, hogy van egy string és int szótárunk, azaz

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

most el akarunk távolítani egy elemet ebből a szótárból, amelynek kulcsa “at”. Ennek különböző módjai vannak. Vizsgáljuk meg őket egyenként,

távolítson el egy kulcsot a szótárból a dict használatával.pop ()

a Python dictionary class egy módszert biztosít pop() törölni egy elemet a szótár alapján kulcs azaz.

dictionary.pop(key)
  • ha az adott kulcs létezik a szótárban, akkor dict.a pop () eltávolítja az elemet a megadott kulccsal, és visszaadja annak értékét.
  • ha az adott kulcs nem létezik a szótárban, akkor a megadott alapértelmezett értéket adja vissza.
  • ha az adott kulcs nem létezik a szótárban, és nem ad át alapértelmezett értéket a pop () – nak, akkor KeyError

töröljünk egy elemet a dict-ből a pop használatával(),

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)

kimenet:

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

törölte a kulcs-érték párt a szótárból, ahol a kulcs ‘ez’ volt, és visszaadta az értékét is.

  • Python dict.pop() módszer részletesen kifejtve
  • hogyan lehet eltávolítani több kulcsot a szótárból iterálás közben?

töröljön egy kulcsot a szótárból, ha létezik a pop()

a pop() alapértelmezett értéke szükséges, mert ha az adott kulcs nincs a szótárban, és nincs megadva alapértelmezett érték a pop () – ban, akkor keyError-t fog dobni. Töröljünk egy olyan elemet, amely nincs jelen a szótárban a pop () függvény használatával, anélkül, hogy átadnánk a pop() alapértelmezett érték Argumentumát, azaz

key_to_be_deleted = 'where'word_freq_dict.pop(key_to_be_deleted)

hiba:

KeyError: 'where'

ha a megadott key in pop() függvény nincs jelen a szótárban, és az alapértelmezett érték sincs megadva, akkor a pop() keyerror-t dobhat. Tehát a hiba elkerülése érdekében mindig ellenőriznünk kell, hogy létezik-e kulcs a szótárban, mielőtt megpróbálnánk törölni ezt a pop () függvény használatával, alapértelmezett érték nélkül, azaz

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

kimenet:

Key where is not in the dictionary

a hiba kezelésére használhatjuk a try/except parancsot is,

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

kimenet:

Key where is not in the dictionary

kulcs eltávolítása a szótárból az elemek használatával () & hurok esetén

ismételje meg a kulcsot, és szűrje le a törölni kívánt kulcsot, azaz

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

kimenet:

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

létrehoztunk egy új ideiglenes szótárt, majd megismételtük az eredeti szótár összes kulcs-érték párját. Az iteráció során a kulcs-érték párot csak akkor másoltuk át az új ideiglenes szótárba, ha a kulcs nem egyenlő a törlendő kulccsal. Miután az iteráció véget ért, átmásoltuk az új ideiglenes szótár tartalmát az eredeti szótárba. Ebben a megközelítésben nincs kockázata KeyError stb.

kulcs eltávolítása a szótárból az elemek használatával () & szótár megértése

az előző példa logikája alapján szűrhetjük a szótár tartalmát kulcs alapján az elemek használatával () & szótár megértése,

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)

kimenet:

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

végigjártuk a szótár kulcs-érték párjait, és új szótárat készítettünk a szótár megértésével. De kizártuk azt a párt, ahol a kulcs megegyezett a törlendő kulccsal. Ezután hozzárendeltük ezt az új szótárt az eredeti szótárhoz. Ez hatással volt arra, hogy a szótárból származó elem a kulcs alapján törlődik.

ezért ennek a megközelítésnek az az előnye, hogy nem kell aggódnia a Kulcshiba miatt, ha a kulcs nem létezik a szótárban.

kulcs eltávolítása a szótárból a del

használatával a del utasítás segítségével eltávolíthatunk egy kulcs-érték párot a szótárból a kulcs alapján,

del dict

először válassza ki az elemet egy szótárból az átadással kulcs az index operátorban, majd adja át a del utasításnak. Ha a kulcs jelen van a szótárban, akkor törli a kulcsot és a megfelelő értéket a szótárból. De ha az adott kulcs nincs jelen a szótárban, akkor hibát fog dobni, azaz KeyError.

használjuk a kulcs eltávolításához a fent említett szótárból,

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

kimenet:

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

törölte az elemet a szótárból, ahol a kulcs ‘at’volt. De mi van, ha egy del utasítást használunk egy olyan kulccsal, amely nem létezik a szótárban, akkor eldobhatja KeyError. Például,

key_to_be_deleted = 'where'del word_freq_dict

kimenet:

KeyError: 'where'

ezért mindig ellenőriznünk kell, hogy a kulcs létezik-e a szótárban, mielőtt megpróbálnánk törölni őket a del kulcsszóval a KeyError elkerülése érdekében,

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

kimenet:

Key where is not in the dictionary

kulcs törlése a szótárból a del kulcsszóval és a try/except

ha nem akarunk if-ellenőrzést a del hívása előtt, akkor használhatjuk a try/exceptet is. Próbáljunk meg törölni egy olyan kulcsot, amely nem létezik a szótárban, és elkapjuk a hibát a try/except használatával,

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

kimenet:

Key where is not in the dictionary

következtetés:

ez volt a 6 különböző módja annak, hogy eltávolítson egy kulcsot a Python szótárából.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

Previous post 8 jelei anorexia athletica-megszállottság túlzott testmozgás
Next post a veszélyek vizsga Guba