03/29/2024

10 metode utile de dicționar Python

Căutați să învățați cum să lucrați cu dicționarele Python? Acest tutorial va acoperi metodele dicționarului Python pentru a citi, modifica și efectua alte operațiuni comune pe dicționarele Python.

Vom începe prin a revizui elementele de bază ale dicționarelor Python și apoi vom crea un exemplu de dicționar și îl vom modifica folosind metodele de dicționar Python.

Să începem…

O prezentare generală a dicționarelor Python

Dicționarele sunt structuri de date încorporate în Python. Vă permite să stocați articole în perechi cheie-valoare, definind o asociere sau o mapare între chei și valori.

Cheile dintr-un dicționar ar trebui să fie unice (pentru ca acestea să fie hashable). Puteți folosi cheia pentru a căuta valoarea sau puteți folosi metode încorporate (le veți afla în curând).

Când creați un dicționar Python, puteți inițializa toate perechile cheie-valoare sau puteți inițializa un dicționar gol și apoi adăugați perechile cheie-valoare.

>>> dict1 = {'language':'Python','like':True}
>>> type(dict1)
<class 'dict'>

# or we can do the following:

>>> dict1 = {}
>>> dict1['language']='Python'
>>> dict1['like']=True

Dicționar Python Metode pentru operații comune

Notă: Pentru a urma exemplele de cod, trebuie să aveți instalat Python 3.7 sau o versiune ulterioară.

Puteți codifica împreună într-un REPL Python. Sau urmăriți-l în editorul online Python al tipstrick.ro.

>>> person = {'name':'Alice',
...           'city':'Portland',
...           'interest':'Programming',
...           'profession':'Developer'
...           }

Acum că am inițializat un dicționar Python, să începem să trecem peste diferitele metode de dicționar.

Obțineți chei de dicționar cu chei()

Una dintre operațiunile comune atunci când lucrați cu un dicționar Python este accesarea tuturor cheilor, valorilor și perechilor cheie-valoare. Pentru a obține cheile unui dicționar, puteți apela metoda keys() după cum se arată:

>>> person.keys()
dict_keys(['name', 'city', 'interest', 'profession'])

Obțineți dicționarul Valori cu valori ()

Metoda values() returnează toate valorile și este utilă atunci când doriți să procesați aceste valori în continuare.

  Cum să convertiți un fișier PDF în PowerPoint

Să accesăm toate valorile din dicționarul persoanei:

>>> person.values()
dict_values(['Alice', 'Portland', 'Programming', 'Developer'])

Obțineți perechi cheie-valoare cu articole()

Metoda items() returnează o listă de tupluri cheie-valoare. Prin urmare, apelarea acestei metode în dicționarul persoanei returnează o listă de tupluri cheie-valoare:

>>> person.items()
dict_items([('name', 'Alice'), ('city', 'Portland'), ('interest', 'Programming'), 
           ('profession', 'Developer')])

Obțineți o copie superficială cu copy()

Metoda copy() returnează o copie superficială a unui dicționar Python.

>>> person_cpy = person.copy()

Aici, person_cpy este o copie superficială a dicționarului persoanei. Să modificăm această copie actualizând cheia „nume” la „Bob”.

>>> person_cpy['name'] = 'Bob'
>>> person_cpy

Acum, dacă examinați conținutul dicționarului, puteți vedea că „numele” a fost actualizat la „Bob”.

{
 'name': 'Bob', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Cu toate acestea, dicționarul original al persoanei nu a fost modificat.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Setați valorile implicite cu setdefault()

Când lucrați cu dicționare Python, este obișnuit să întâlniți excepția KeyError dacă cheia nu este prezentă în dicționar. Iată un exemplu când încercăm să accesăm cheia „vârstă”:

>>> person['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Puteți evita astfel de erori utilizând metodele încorporate setdefault() și metodele get() în loc să accesați valoarea ca mai sus.

Metoda setdefault(key) returnează dict[‘key’] dacă cheia este prezentă în dict.

>>> person.setdefault('name')
'Alice'

Când cheia nu este prezentă, aceasta adaugă cheia la dicționar cu valoarea implicită None.

>>> person.setdefault('address')
>>> person

Aici, cheia „adresă” nu este prezentă în dicționarul persoanei. Dar vedem că a fost adăugat cu valoarea implicită de None.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': None 
}

Acum putem seta cheia „adresă” la o anumită adresă:

>>> person['address'] = "10, xyz street"
>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street' 
}

De asemenea, puteți specifica valoarea în apelul de metodă, după cum se arată:

>>> person.setdefault('country','USA')
'USA'
>>> person

Deoarece cheia „țară” nu este prezentă inițial în dicționarul persoanei, vedem că a fost adăugată cu „SUA” ca valoare.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Obțineți o valoare specifică cu get()

Metoda get() returnează valoarea corespunzătoare cheii. De asemenea, opțional ia o altă valoare implicită care este returnată dacă cheia nu este găsită în dicționar.

  Cum să-ți trimiți note pe Slack

Când încercăm să accesăm valoarea cheii „nume”, obținem „Alice”, deoarece cheia este prezentă personal:

>>> person.get('name')
'Alice'

Dicționarul persoanei nu are o cheie „gpa”. Deci, când încercăm să-i obținem valoarea, nu obținem nimic la Python REPL. Cu toate acestea, dacă imprimați valoarea, veți obține Niciunul.

>>> person.get('gpa')
>>> print(person.get('gpa'))
None

Dar dacă furnizați valoarea implicită opțională, obținem acea valoare în loc de Niciunul.

>>> person.get('gpa','not found')
'not found'

Cu toate acestea, metoda get() nu adaugă cheia „gpa” în dicționar.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Înțelegerea setdefault() vs. get()

Deși ambele metode setdefault() și get() pot fi folosite pentru a gestiona KeyError, haideți să rezumam diferențele față de ceea ce am învățat:

  • dict.setdefault(key,val) adaugă cheia cu val ca valoare implicită. Dacă nu este furnizat val, cheia este adăugată cu valoarea implicită None.
  • dict.get(key,val) returnează valoarea corespunzătoare cheii din dicționarul Python. Dacă cheia nu este prezentă, returnează val (dacă este furnizată) sau None, dar nu adaugă cheia în dicționar.

De asemenea, puteți utiliza defaultdict în Python pentru a gestiona mai bine KeyErrors.

Actualizați conținutul dicționarului cu update()

Puteți actualiza un dicționar Python existent folosind perechi cheie-valoare dintr-un alt dicționar. De asemenea, puteți actualiza cu conținutul oricărui iterabil Python folosind metoda update().

Să definim un dicționar mai multe_detalii. Apoi actualizăm dicționarul persoanei cu conținut din dicționarul more_details:

>>> more_details = {'hobby':'singing', 'likes':'sweets'}
>>> person.update(more_details)

Din rezultatul de mai jos, vedem că tastele „hobby” și „like” au fost adăugate la dicționarul persoanei.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing', 
 'likes': 'sweets'
}

Eliminați ultimul element adăugat cu popitem()

Metoda dicționarului popitem() poate fi utilizată pentru a elimina ultima pereche cheie-valoare adăugată.

>>> person.popitem()
('likes', 'sweets')

După cum s-a văzut, apelarea metodei popitem() din dicționarul persoanei returnează perechea cheie-valoare („like”, „dulciuri”) – ultimul element adăugat în dicționar.

De asemenea, elimină perechea cheie-valoare. Puteți confirma acest lucru examinând conținutul dicționarului:

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing'
}

Eliminați un element de dicționar cu pop()

Știm că metoda dicționarului popitem() elimină și returnează ultima pereche cheie-valoare dintr-un dicționar Python. Cu toate acestea, uneori este posibil să fie nevoie să eliminăm alte elemente, altele decât ultima pereche cheie-valoare adăugată.

  Tehnica de căutare care te face vulnerabil

Pentru a face acest lucru, putem folosi metoda dicționarului Python pop(): utilizarea .pop(key) în dicționar returnează valoarea corespunzătoare cheii și, de asemenea, elimină perechea cheie-valoare din dicționar.

Iată un exemplu:

>>> person.pop('hobby')
'singing'

Pe măsură ce am scos articolul corespunzător cheii „hobby”, vedem că nu mai este prezent în dicționar.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Dacă transmitem o cheie care nu există, întâlnim excepția KeyError, așa cum se arată:

>>> person.pop('age')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Aici, întâlnim o excepție KeyError, deoarece cheia „vârstă” nu este prezentă în dicționarul persoanei.

Spre deosebire de metoda list pop() care elimină implicit ultimul element, metoda dicționar pop() necesită o cheie. Dacă nu specificați o cheie în metodă, vom întâlni erori.

>>> person.pop()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pop expected at least 1 argument, got 0

Ștergeți toate articolele din dicționar cu clear()

Metodele dicționar pop() și popitem() elimină câte o pereche cheie-valoare odată. Dacă doriți să ștergeți toate elementele dintr-un dicționar, puteți utiliza metoda clear().

>>> person.clear()
>>> person
{}

După cum s-a văzut, apelarea metodei clear() din dicționarul persoană elimină toate perechile cheie-valoare, iar dicționarul persoană este acum gol.

Rezumatul metodelor dicționarului Python

Iată o trecere în revistă rapidă a metodelor dicționarului Python pe care le-am învățat.

MethodSyntaxDescriptionkeys()dict1.keys() Returnează cheile dict1values()dict1.values()Returnează valorile dict1items()dict1.items()Returnează o listă a tuturor perechilor cheie-valoare din dict1copy()dict1.copy() Returnează o copie superficială a lui dict1setdefault()dict1.setdefault(key, default_value) – Adaugă cheia cu default_value opțională ca cheie pentru dict1 (când nu este specificată, valoarea implicită este None)
– Returnează dict1[key] dacă cheia este deja prezentget()dict1.get(key,default_value)– Returnează dict1[key] dacă cheia este prezentă în dict1; În caz contrar, returnează default_value
– Dacă cheia nu este prezentă în dict1 și default_value nu este specificată, returnează Noneupdate()dict1.update(iterable1)Actualizează dict1 cu perechi cheie-valoare din iterable1popitem()dict1.popitem()Elimină și returnează ultima pereche cheie-valoare din dict1pop()dict1.pop(key)– Îndepărtează și returnează valoarea corespunzătoare cheii: dict1[key]
– Afișează o KeyError dacă cheia nu este prezentă în dict1clear()dict1.clear()Șterge toate elementele din dict1

Concluzie

Ați învățat cum să utilizați metode obișnuite pentru a efectua operațiuni de citire, actualizare și ștergere pe dicționarele Python. În plus, ați învățat și cum metodele get() și setdefault() pot fi utilizate pentru a gestiona excepțiile KeyError, returnând o valoare implicită și, respectiv, adăugând o intrare cu o valoare implicită în dicționarul Python. De asemenea, puteți sorta un dicționar Python după cheie sau după valoare.

Apoi, consultați lista de metode utile de listă Python. Codare fericită!