eliminați o cheie din dicționar în Python | del vs dict.pop() vs înțelegere

în acest articol vom discuta 6 moduri diferite de a șterge o cheie dintr-un dicționar în python adică

  • eliminați o cheie dintr-un dicționar folosind dict.pop().
  • ștergeți o cheie dintr-un dicționar folosind pop() și încercați/cu excepția.
  • eliminați o cheie dintr-un dicționar folosind elemente () & pentru buclă.
  • eliminați o cheie dintr-un dicționar folosind elemente () & înțelegerea dicționarului.
  • eliminați o cheie dintr-un dicționar folosind del.
  • ștergerea unei chei dintr-un dicționar folosind del keyword și TRY/excepting.

să presupunem că avem un dicționar de șir și int adică

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

acum vrem să eliminăm un element din acest dicționar a cărui cheie este „la”. Există diferite moduri de a face acest lucru. Să le explorăm unul câte unul,

eliminați o cheie dintr-un dicționar folosind dict.pop ()

în Python dictionary class oferă o metodă pop () pentru a șterge un element din dicționar bazat pe cheie adică.

dictionary.pop(key)
  • dacă cheia dată există în dicționar, atunci dict.pop () elimină elementul cu cheia dată și returnează valoarea acestuia.
  • dacă cheia dată nu există în dicționar, atunci returnează valoarea implicită dată.
  • în cazul în care cheia dată nu există în dicționar și nici o valoare implicită este trecut la pop (), atunci se va arunca KeyError

să ștergeți un element din dict folosind 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)

ieșire:

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

a șters perechea cheie-valoare din dicționar unde cheia era ‘asta’ și i-a returnat și valoarea.

  • Piton dict.pop () metoda explicată în detaliu
  • cum să eliminați mai multe chei din dicționar în timp ce iterați?

ștergeți o cheie din dicționar dacă există folosind pop ()

valoarea implicită în pop() este necesară, deoarece dacă cheia dată nu este prezentă în dicționar și nu este dată nicio valoare implicită în pop (), atunci va arunca keyError. Să ștergem un element care nu este prezent în dicționar folosind funcția pop () și fără a trece un argument de valoare implicit în pop () adică

key_to_be_deleted = 'where'word_freq_dict.pop(key_to_be_deleted)

eroare:

KeyError: 'where'

dacă cheia dată în funcția pop() nu este prezentă în dicționar și, de asemenea, valoarea implicită nu este furnizată, atunci pop() poate arunca KeyError. Deci, pentru a evita această eroare ar trebui să verificăm întotdeauna dacă există cheie în dicționar înainte de a încerca să ștergeți că folosind pop () funcție și fără nici o valoare implicită adică

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

ieșire:

Key where is not in the dictionary

putem folosi, de asemenea, încercați / cu excepția să se ocupe de această eroare,

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

ieșire:

Key where is not in the dictionary

eliminați o cheie dintr-un dicționar folosind items () & pentru buclă

iterați peste cheie și filtrați cheia care trebuie ștearsă, adică

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

ieșire:

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

am creat un nou dicționar temporar și apoi itera peste toate perechile cheie-valoare ale dicționarului original. În timp ce iterăm am copiat perechea cheie-valoare în dicționar temporar nou numai dacă cheia nu este egală cu cheia care trebuie ștearsă. După terminarea iterației, am copiat noul conținut temporar al dicționarului în dicționarul original. În această abordare nu există nici un risc de KeyError etc.

eliminați o cheie dintr-un dicționar folosind articole() & înțelegerea dicționarului

folosind logica exemplului anterior putem filtra conținutul dicționarului pe baza cheii folosind articole () & înțelegerea dicționarului,

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)

ieșire:

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

am iterat peste perechile cheie-valoare ale dicționarului și am construit un nou dicționar folosind înțelegerea dicționarului. Dar am exclus perechea în care cheia se potrivea cu cheia care urmează să fie ștearsă. Apoi am atribuit acest nou dicționar dicționarului original. Acesta a dat un efect că elementul din dicționar este șters pe baza cheii.

prin urmare, beneficiul acestei abordări este că nu trebuie să vă faceți griji cu privire la eroarea cheie în cazul în care cheia nu există în dicționar.

eliminați o cheie dintr-un dicționar folosind del

putem folosi instrucțiunea del pentru a elimina o pereche cheie-valoare din dicționar bazată pe cheie,

del dict

mai întâi selectați elementul dintr-un dicționar trecând cheia în operatorul de indice și apoi treceți-l la instrucțiunea del. Dacă cheia este prezentă în dicționar, atunci va șterge cheia și valoarea corespunzătoare din dicționar. Dar dacă cheia dată nu este prezentă în dicționar, atunci va arunca o eroare, adică KeyError.

să o folosim pentru a elimina cheia din dicționarul menționat mai sus,

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

ieșire:

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

acesta a șters elementul din dicționar unde cheia a fost ‘la’. Dar dacă folosim o declarație del cu o cheie care nu există în dicționar, atunci poate arunca KeyError. De exemplu,

key_to_be_deleted = 'where'del word_freq_dict

ieșire:

KeyError: 'where'

prin urmare, ar trebui să verificăm întotdeauna dacă cheia există în dicționar înainte de a încerca să le ștergem folosind cuvântul cheie del pentru a evita 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')

ieșire:

Key where is not in the dictionary

ștergerea unei chei dintr-un dicționar folosind del keyword și try/cu excepția

dacă nu dorim o verificare if înainte de a apela del, atunci putem folosi și try/cu excepția. Să încercăm să ștergem o cheie care nu există în dicționar și să prindem și eroarea folosind încercați / cu excepția,

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

ieșire:

Key where is not in the dictionary

concluzie:

acestea au fost cele 6 moduri diferite de a elimina o cheie dintr-un dicționar în python.

Lasă un răspuns

Adresa ta de email nu va fi publicată.

Previous post 8 semne de anorexie athletica – o obsesie cu exercitarea excesivă
Next post pericolele gropilor de examen