i denne artikkelen vil vi diskutere 6 forskjellige måter å slette en nøkkel fra en ordbok i python, dvs.
- Fjern en nøkkel fra en ordbok ved hjelp av dict.pop().
- Slett en nøkkel fra en ordbok ved hjelp av pop () og prøv / unntatt.
- Fjern en nøkkel fra en ordbok ved hjelp av elementer () & for loop.
- Fjern en nøkkel fra en ordbok ved hjelp av elementer () & Ordbokforståelse.
- Fjern en nøkkel fra en ordbok ved hjelp av del.
- Slette en nøkkel fra en ordbok ved hjelp av del nøkkelord og prøv / unntatt.
Anta at vi har en ordbok av streng og int, dvs.
# Dictionary of strings and intword_freq_dict = {"Hello": 56, "at": 23, "test": 43, "this": 43}
nå vil Vi fjerne et element fra denne ordboken hvis nøkkel er «at». Det er forskjellige måter å gjøre det på. La oss utforske dem en etter en,
Fjern en nøkkel fra en ordbok ved hjelp av dict.pop()
I Python ordbok klasse gir en metode pop () for å slette et element fra ordlisten basert på nøkkel dvs.
dictionary.pop(key)
- hvis den oppgitte nøkkelen finnes i ordboken, så dict.pop () fjerner elementet med den oppgitte nøkkelen og returnerer verdien.
- hvis den oppgitte nøkkelen ikke finnes i ordlisten, returnerer Den den oppgitte Standardverdien.
- Hvis den oppgitte nøkkelen ikke finnes i ordlisten og Ingen Standardverdi sendes til pop (), vil den kaste KeyError
la oss slette et element fra dict ved hjelp av 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)
Utgang:
Deleted item's value = 43Updated Dictionary : {'Hello': 56, 'at': 23, 'test': 43}
det slettet nøkkelverdiparet fra ordboken der nøkkelen var ‘dette’ og returnerte også verdien.
- Python dict.pop () metode forklart i detalj
- Hvordan Fjerne flere nøkler fra Ordboken mens Iterating?
Slett En Nøkkel fra ordboken hvis den finnes ved hjelp av pop ()
standardverdien i pop() er nødvendig, fordi hvis den oppgitte nøkkelen ikke finnes i ordlisten og ingen standardverdi er gitt i pop (), vil den kaste keyError. La oss slette et element som ikke finnes i ordboken ved hjelp av pop () – funksjonen og uten å sende et standardverdiargument i pop () dvs.
key_to_be_deleted = 'where'word_freq_dict.pop(key_to_be_deleted)
Feil:
KeyError: 'where'
hvis den oppgitte nøkkelen i pop () – funksjonen ikke er til stede i ordlisten, og også standardverdien ikke er oppgitt, kan pop() kaste KeyError. For å unngå den feilen bør vi alltid sjekke om nøkkelen finnes i ordboken før du prøver å slette den ved hjelp av pop () – funksjonen og uten standardverdi, dvs.
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')
Utgang:
Key where is not in the dictionary
Vi kan også bruke try / except til å håndtere den feilen,
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')
Utgang:
Key where is not in the dictionary
Fjern en nøkkel fra en ordbok ved hjelp av elementer () & for sløyfe
Iterere over nøkkelen og filtrer nøkkelen som må slettes, dvs.
# 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)
Utgang:
{'Hello': 56, 'test': 43, 'this': 43}
Vi opprettet en ny midlertidig ordbok og deretter iterere over alle nøkkelverdiparene i den opprinnelige ordboken. Mens iterating kopierte vi nøkkelverdiparet til ny midlertidig ordbok bare hvis nøkkelen ikke er lik nøkkelen som skal slettes. Når iterasjonen er over, kopierte vi det nye midlertidige ordbokinnholdet til den opprinnelige ordboken. I denne tilnærmingen er det ingen risiko For KeyError etc.
Fjern en nøkkel fra en ordbok ved hjelp av elementer () & Ordbokforståelse
ved hjelp av logikken i forrige eksempel kan vi filtrere innholdet i ordboken basert på nøkkel ved hjelp av elementer () & ordbokforståelse,
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)
Utgang:
{'Hello': 56, 'test': 43, 'this': 43}
Vi iterated over nøkkelverdiparene i ordboken og konstruerte en ny ordbok ved hjelp av ordbokforståelse. Men vi utelukket paret der nøkkelen matchet nøkkelen-å-bli-slettet. Da tildelte vi denne nye ordboken til den opprinnelige ordboken. Det ga en effekt at elementet fra ordlisten er slettet basert på nøkkelen.
derfor er fordelen med denne tilnærmingen at du ikke trenger å bekymre Deg For Nøkkelfeilen hvis nøkkelen ikke finnes i ordboken.
Fjern en nøkkel fra en ordbok ved hjelp av del
vi kan bruke del-setningen til å fjerne et nøkkelverdipar fra ordboken basert på nøkkelen,
del dict
velg først elementet fra en ordbok ved å sende nøkkelen i subscript-operatoren og deretter sende den til del-setningen. Hvis nøkkelen er til stede i ordboken, vil den slette nøkkelen og tilhørende verdi fra ordboken. Men hvis den oppgitte nøkkelen ikke er til stede i ordboken, vil den kaste en feil, Dvs.KeyError.
La oss bruke den til å fjerne nøkkelen fra ovennevnte ordbok,
# 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)
Utgang:
{'Hello': 56, 'test': 43, 'this': 43}
det slettet elementet fra ordlisten der nøkkelen var ‘at’. Men hva om vi bruker en del-setning med en nøkkel som ikke finnes i ordboken, så kan Den kaste KeyError. For eksempel,
key_to_be_deleted = 'where'del word_freq_dict
Utgang:
KeyError: 'where'
derfor bør vi alltid sjekke om nøkkelen finnes i ordboken før du prøver å slette dem ved hjelp av del-søkeordet for å unngå 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')
Utgang:
Key where is not in the dictionary
Slette en nøkkel fra en ordbok ved hjelp av del-søkeord og prøv/unntatt
Hvis vi ikke vil ha en if-sjekk før du ringer del, kan vi også bruke try / except. La oss prøve å slette en nøkkel som ikke finnes i ordboken, og ta feilen også ved å bruke 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')
Utgang:
Key where is not in the dictionary
Konklusjon:
dette var de 6 forskjellige måtene å fjerne En Nøkkel fra en ordbok i python.