07: Dicționare
Stochează date structurate cu dicționarele Python — perechi cheie-valoare.
Lecția 07 · Dicționare¶
Ce vei învăța
- Ce este un dicționar și când îl folosești
- Cum creezi, accesezi și modifici un dicționar
- Metodele principale:
.keys(),.values(),.items() - Iterarea peste dicționar
Ce este un dicționar?¶
Un dicționar stochează perechi cheie → valoare, ca un dicționar real unde cuvântul este cheia și definiția este valoarea:
Spre deosebire de liste (unde accesezi prin index numeric), dicționarele se accesează prin chei:
Crearea unui dicționar¶
# Dicționar gol
date = {}
# Dicționar cu valori inițiale
masina = {
"marca": "Dacia",
"model": "Logan",
"an": 2020,
"km": 45000
}
Cheile pot fi str, int sau float. Valorile pot fi orice tip.
Accesarea valorilor¶
Cu []¶
Dacă cheia nu există, primești KeyError.
Cu .get() — mai sigur¶
print(masina.get("culoare")) # None (fără eroare)
print(masina.get("culoare", "necunoscut")) # necunoscut
Adăugarea și modificarea¶
masina["culoare"] = "alb" # adaugă cheie nouă
masina["km"] = 46000 # modifică valoare existentă
print(masina)
Ștergerea cheilor¶
Verificarea existenței cheii¶
Metodele principale¶
persoana = {"nume": "Elena", "varsta": 16, "oras": "Cluj"}
print(persoana.keys()) # dict_keys(['nume', 'varsta', 'oras'])
print(persoana.values()) # dict_values(['Elena', 16, 'Cluj'])
print(persoana.items()) # dict_items([('nume', 'Elena'), ...])
print(len(persoana)) # 3
Iterarea¶
Doar chei¶
Chei și valori cu .items()¶
for cheie, valoare in persoana.items():
print(f"{cheie}: {valoare}")
# nume: Elena
# varsta: 16
# oras: Cluj
Dicționare imbricate¶
clasa = {
"Andrei": {"nota_ro": 9, "nota_mat": 8},
"Maria": {"nota_ro": 10, "nota_mat": 9},
}
print(clasa["Maria"]["nota_mat"]) # 9
Exerciții¶
Exercițiu 1 — Capitala¶
Creează un dicționar cu 5 perechi țară-capitală. Cere o țară de la utilizator și afișează capitala (sau "Necunoscut" dacă nu există).
Soluție
Exercițiu 2 — Numărarea aparițiilor¶
Numără de câte ori apare fiecare literă din cuvântul "programare".
Soluție
Exercițiu 3 — Actualizare¶
Pornind de la {"mere": 5, "pere": 3}, adaugă "cireșe": 10, modifică merele la 8 și șterge perele.
Soluție
Mini-proiect: Carnet de contacte¶
Creează un mic program de gestiune a contactelor care permite adăugarea, căutarea și listarea contactelor.
Exemplu de rulare:
1. Adaugă contact
2. Caută contact
3. Listează toate
4. Ieșire
Alegerea ta: 1
Nume: Ana
Telefon: 0722123456
Contact adăugat!
Soluție
contacte = {}
while True:
print("\n1. Adaugă contact")
print("2. Caută contact")
print("3. Listează toate")
print("4. Ieșire")
alegere = input("Alegerea ta: ")
if alegere == "1":
nume = input("Nume: ")
telefon = input("Telefon: ")
contacte[nume] = telefon
print("Contact adăugat!")
elif alegere == "2":
nume = input("Caută după nume: ")
print(contacte.get(nume, "Contact negăsit."))
elif alegere == "3":
if contacte:
for nume, tel in contacte.items():
print(f"{nume}: {tel}")
else:
print("Niciun contact salvat.")
elif alegere == "4":
print("La revedere!")
break
else:
print("Opțiune invalidă.")
Rezumat¶
- Dicționarele stochează perechi cheie-valoare:
{"cheie": valoare} - Accesare:
dict["cheie"]saudict.get("cheie", implicit) - Adăugare/modificare:
dict["cheie"] = valoare - Ștergere:
del dict["cheie"]saudict.pop("cheie") - Iterare cu
.items()pentru chei și valori simultan - Verificare:
"cheie" in dict
Pasul următor: → Lecția 08: Funcții