Dicționarele în Python explicate simplu
Dicționarele leagă o cheie de o valoare și fac codul tău rapid și clar. Învață cum le creezi, le citești, le actualizezi și când să le folosești.
Imaginează-ți un catalog: pentru fiecare elev (cheie) ai o notă (valoare). Exact așa funcționează un dicționar în Python. E una dintre cele mai puternice și mai folosite structuri de date, iar după acest articol o vei înțelege complet.
Ce este un dicționar?
Un dicționar (dict) păstrează perechi cheie → valoare. Spre deosebire de listă, unde cauți după poziție, aici cauți după cheie.
note = {"Ana": 9, "Mihai": 7, "Ioana": 10}
print(note["Ana"]) # 9
Se scrie între acolade { }, cu perechi de forma cheie: valoare.
De ce sunt utile?
Compară cele două variante de a căuta nota Anei:
- Cu listă: parcurgi tot și verifici fiecare nume — lent.
- Cu dicționar: scrii
note["Ana"]și ai răspunsul instant.
Dicționarele sunt extrem de rapide la căutare, indiferent câte elemente au.
Citire, adăugare, modificare
elev = {"nume": "Ana", "varsta": 16}
# citire
print(elev["nume"]) # Ana
# adaugare cheie noua
elev["clasa"] = "a 10-a"
# modificare valoare existenta
elev["varsta"] = 17
# stergere
del elev["clasa"]
print(elev) # {'nume': 'Ana', 'varsta': 17}
Dacă ceri o cheie care nu există cu
elev["x"], primești o eroareKeyError. Soluția sigură e metodaget.
get: citire fără riscul de eroare
note = {"Ana": 9, "Mihai": 7}
print(note.get("Ioana")) # None (nu da eroare)
print(note.get("Ioana", 0)) # 0 (valoare implicita)
Folosește get mereu când nu ești sigur că cheia există.
Parcurgerea unui dicționar
note = {"Ana": 9, "Mihai": 7, "Ioana": 10}
for nume in note: # implicit, parcurge cheile
print(nume)
for nume, nota in note.items(): # cheie si valoare
print(nume, "are", nota)
for nota in note.values(): # doar valorile
print(nota)
Metode importante
| Metodă | Ce face |
|---|---|
keys() | Toate cheile |
values() | Toate valorile |
items() | Perechile (cheie, valoare) |
get(k, d) | Valoarea lui k, sau d dacă lipsește |
pop(k) | Șterge și returnează valoarea lui k |
update(d2) | Adaugă/actualizează din alt dicționar |
Reguli pentru chei
- Cheile trebuie să fie unice — dacă pui de două ori aceeași cheie, rămâne ultima valoare.
- Cheile trebuie să fie de tip imuabil:
str,int,tuple. Nu poți folosi o listă drept cheie.
d = {"a": 1, "a": 2}
print(d) # {'a': 2} -> a doua valoare a invins
Un exemplu practic: numără literele
Dicționarele sunt perfecte pentru a număra apariții:
text = "programare"
frecventa = {}
for litera in text:
frecventa[litera] = frecventa.get(litera, 0) + 1
print(frecventa)
# {'p': 1, 'r': 3, 'o': 1, 'g': 1, 'a': 2, 'm': 1, 'e': 1}
Cu o singură linie în buclă numeri câte apariții are fiecare literă. Încearcă să faci asta doar cu liste și vei aprecia diferența.
Dicționar de dicționare
Poți combina structuri pentru date mai bogate:
elevi = {
"Ana": {"varsta": 16, "media": 9.5},
"Mihai": {"varsta": 17, "media": 8.0},
}
print(elevi["Ana"]["media"]) # 9.5
Când folosești dicționar vs. listă?
- Listă — când contează ordinea și accesezi după poziție (ex: o coadă de pași).
- Dicționar — când vrei să cauți rapid după o etichetă (ex: nota după nume).
Concluzie
Dicționarul îți leagă o cheie de o valoare și îți oferă căutare aproape instantanee. Stăpânește get, items și pattern-ul de numărare de mai sus, și vei rezolva o grămadă de probleme elegant.
La ByteSchool îți arătăm cum gândesc inginerii din Big Tech atunci când aleg structura de date potrivită — pas cu pas, cu exemple reale. Vino să exersăm împreună.