Fjern en nøgle fra Ordbog i Python | Del vs dict.pop () vs forståelse

i denne artikel vil vi diskutere 6 forskellige måder at slette en nøgle fra en ordbog i python, dvs.

  • Fjern en nøgle fra en ordbog ved hjælp af dict.pop().
  • Slet en nøgle fra en ordbog ved hjælp af pop() og prøv/undtagen.
  • Fjern en nøgle fra en ordbog ved hjælp af elementer () & til loop.
  • Fjern en nøgle fra en ordbog ved hjælp af elementer () & Ordbogsforståelse.
  • Fjern en nøgle fra en ordbog ved hjælp af del.
  • sletning af en nøgle fra en ordbog ved hjælp af del søgeord og prøv/undtagen.

Antag, at vi har en ordbog med streng og int, dvs.

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

nu vil vi fjerne et element fra denne ordbog, hvis nøgle er “at”. Der er forskellige måder at gøre det på. Lad os udforske dem en efter en,

Fjern en nøgle fra en ordbog ved hjælp af dict.pop ()

i Python ordbog klasse giver en metode pop() for at slette et element fra ordbogen baseret på nøgle dvs.

dictionary.pop(key)
  • hvis den givne nøgle findes i ordbogen, så dict.pop () fjerner elementet med den givne nøgle og returnerer dets værdi.
  • hvis den givne nøgle ikke findes i ordbogen, returnerer den den givne Standardværdi.
  • hvis den givne nøgle ikke findes i ordbogen, og ingen Standardværdi overføres til pop (), vil den kaste KeyError

lad os slette et element fra dict ved hjælp af 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)

Output:

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

det slettede nøgleværdiparret fra ordbogen, hvor nøglen var ‘dette’ og returnerede også sin værdi.

  • Python dict.pop () metode forklaret i detaljer
  • Sådan fjerner du flere nøgler fra ordbogen, mens du gentager?

Slet en nøgle fra ordbog, hvis der findes ved hjælp af pop ()

standardværdien i pop() er nødvendig, fordi hvis den givne nøgle ikke er til stede i ordbogen, og ingen standardværdi er angivet i pop (), vil den kaste keyError. Lad os slette et element, der ikke er til stede i ordbogen ved hjælp af pop () – funktionen og uden at overføre et standardværdiargument i pop (), dvs.

key_to_be_deleted = 'where'word_freq_dict.pop(key_to_be_deleted)

fejl:

KeyError: 'where'

hvis den givne nøgle i pop () – funktionen ikke er til stede i ordbogen, og standardværdien ikke er angivet, kan pop() kaste KeyError. Så for at undgå denne fejl skal vi altid kontrollere, om der findes nøgle i ordbogen, før vi prøver at slette den ved hjælp af pop () – funktionen og uden nogen standardværdi, 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')

Output:

Key where is not in the dictionary

vi kan også bruge try / undtagen til at håndtere denne fejl,

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

Output:

Key where is not in the dictionary

Fjern en nøgle fra en ordbog ved hjælp af elementer () & for loop

Iterate over nøglen og filtrer nøglen, der skal 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)

Output:

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

vi oprettede en ny midlertidig ordbog og gentager derefter alle nøgleværdipar i den originale ordbog. Mens vi gentog, kopierede vi kun nøgleværdiparret til ny midlertidig ordbog, hvis nøglen ikke er lig med den nøgle, der skal slettes. Når iterationen er forbi, kopierede vi det nye midlertidige ordbogindhold til den originale ordbog. I denne tilgang er der ingen risiko for nøglefejl osv.

Fjern en nøgle fra en ordbog ved hjælp af elementer () & Ordbogsforståelse

ved hjælp af logikken i det foregående eksempel kan vi filtrere indholdet af ordbogen baseret på nøgle ved hjælp af elementer () & ordbogsforstå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)

Output:

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

vi gentog over ordbogens nøgleværdipar og konstruerede en ny ordbog ved hjælp af ordbogsforståelse. Men vi udelukkede parret, hvor nøglen matchede nøglen til at blive slettet. Derefter tildelte vi denne nye ordbog til den originale ordbog. Det gav en effekt, at elementet fra ordbogen er slettet baseret på nøgle.

derfor er fordelen ved denne tilgang, at du ikke behøver at bekymre dig om Nøglefejlen, hvis nøglen ikke findes i ordbogen.

Fjern en nøgle fra en ordbog ved hjælp af del

vi kan bruge Del-sætningen til at fjerne et nøgleværdipar fra ordbogen baseret på nøglen,

del dict

Vælg først elementet fra en ordbog ved at sende nøgle i abonnentoperatøren og derefter sende det til del-sætningen. Hvis nøglen er til stede i ordbogen, vil den slette nøglen og den tilsvarende værdi fra ordbogen. Men hvis den givne nøgle ikke er til stede i ordbogen, vil den kaste en fejl, dvs.KeyError.

lad os bruge den til at fjerne nøglen fra ovennævnte ordbog,

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

Output:

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

det slettede elementet fra ordbogen, hvor nøglen var ‘at’. Men hvad nu hvis vi bruger en del-erklæring med en nøgle, der ikke findes i ordbogen, så kan den kaste KeyError. For eksempel,

key_to_be_deleted = 'where'del word_freq_dict

Output:

KeyError: 'where'

derfor bør vi altid kontrollere, om nøglen findes i ordbogen, før vi prøver at slette dem ved hjælp af del-Nøgleordet for at undgå 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')

Output:

Key where is not in the dictionary

sletning af en nøgle fra en ordbog ved hjælp af del-nøgleord og prøv/undtagen

hvis vi ikke ønsker en if-kontrol, før vi ringer til del, kan vi også bruge try/undtagen. Lad os prøve at slette en nøgle, der ikke findes i ordbogen, og fange fejlen også ved hjælp af prøv / undtagen,

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

Output:

Key where is not in the dictionary

konklusion:

disse var de 6 forskellige måder at fjerne en nøgle fra en ordbog i python.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

Previous post 8 tegn på anoreksi athletica – en besættelse med overdreven motion
Next post farerne ved eksamen lossepladser