Fjern en nøkkel fra Ordboken I Python | del vs dict.pop() vs forståelse

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.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.

Previous post 8 tegn på anoreksi athletica – en besettelse med overdreven trening
Next post Farene Ved Eksamen Dumper