Vezi scriptul lecției
Introducere
Astăzi vom învăța două structuri de date foarte importante în Python:
dicționarele și seturile.
Cu ajutorul lor poți organiza informații asemănător unei baze de date,
unei liste de contacte sau unui catalog de produse.
1. Ce este un Dicționar?
Un dicționar este o colecție de perechi
cheie – valoare.
Gândește-te la el ca la un tabel cu două coloane:
într-o coloană avem cheia, iar în cealaltă avem valoarea asociată.
Exemplu:
print("=== Dicționarul meu de mașini ===")
masini = {
"VW": "Polo",
"BMW": "M5",
"Kia": "Sportage"
}
print(masini)
În acest dicționar:
"VW" este cheia, iar "Polo" este valoarea;
"BMW" este cheia, iar "M5" este valoarea;
"Kia" este cheia, iar "Sportage" este valoarea.
2. Crearea unui Dicționar cu acolade
Cel mai simplu mod de a crea un dicționar este folosind acoladele
{ }.
print("=== Crearea unui dicționar cu acolade ===")
john = {
"name": "John Doe",
"age": 25,
"job": "Python Developer"
}
print(john)
Cheile și valorile sunt separate prin două puncte
:, iar fiecare pereche este separată prin virgulă.
3. Accesarea unei valori
Pentru a lua o valoare dintr-un dicționar, folosim cheia dintre
paranteze pătrate.
print("Meseria lui John este:")
print(john["job"])
Python caută cheia "job" și întoarce valoarea asociată:
"Python Developer".
Putem accesa și celelalte valori:
print("Nume:", john["name"])
print("Vârstă:", john["age"])
Este asemănător cu indexarea unei liste, dar în loc să folosim un
număr, folosim o cheie.
4. Crearea unui Dicționar cu dict()
Un dicționar poate fi creat și folosind constructorul
dict().
print("=== Crearea unui dicționar cu dict() ===")
jane = dict(
name="Jane Doe",
age=24,
job="Web Developer"
)
print(jane)
În acest caz, cheile sunt scrise fără ghilimele în interiorul
funcției dict().
Putem accesa vârsta lui Jane astfel:
print("Vârsta lui Jane este:")
print(jane["age"])
5. Ordinea elementelor
În versiunile moderne de Python, dicționarele păstrează ordinea în
care elementele au fost introduse.
Acest comportament este garantat începând cu Python 3.7.
6. Metoda get()
O metodă mai sigură pentru accesarea valorilor este
get().
print(john.get("job"))
Diferența este că, dacă cheia nu există, metoda
get() nu oprește programul cu o eroare.
print(john.get("city"))
În acest caz, Python va afișa None.
Putem oferi și o valoare implicită:
print(john.get("city", "Oraș necunoscut"))
7. Chei, valori și perechi
Python oferă metode speciale pentru a vedea separat cheile,
valorile sau toate perechile dintr-un dicționar.
keys()
Metoda keys() întoarce toate cheile.
print(john.keys())
Rezultat asemănător:
dict_keys(['name', 'age', 'job'])
values()
Metoda values() întoarce toate valorile.
print(john.values())
Rezultat asemănător:
dict_values(['John Doe', 25, 'Python Developer'])
items()
Metoda items() întoarce toate perechile
cheie – valoare.
print(john.items())
Rezultat asemănător:
dict_items([
('name', 'John Doe'),
('age', 25),
('job', 'Python Developer')
])
Aceste metode sunt foarte utile atunci când lucrăm cu bucle și vrem
să parcurgem informațiile dintr-un dicționar.
8. Ce este un Set?
Un set este o colecție de valori unice.
Asta înseamnă că un set nu păstrează elementele duplicate.
De asemenea, seturile nu garantează o ordine fixă a elementelor.
print("=== Ce este un set? ===")
nume = {
"John",
"Jane",
"Linda"
}
print(nume)
Este important să reții că acoladele goale
{} creează un dicționar gol, nu un set gol.
Pentru a crea un set gol, folosim:
set_gol = set()
print(set_gol)
print(type(set_gol))
9. Crearea unui Set cu set()
Putem crea un set și folosind constructorul
set().
print("=== Crearea unui set cu set() ===")
alte_nume = set([
"David",
"Mark",
"Marie"
])
print(alte_nume)
Constructorul set() poate transforma o listă într-un
set.
10. Eliminarea valorilor duplicate
Una dintre cele mai utile caracteristici ale seturilor este
eliminarea automată a valorilor duplicate.
print("=== Eliminarea valorilor duplicate ===")
numere = [1, 2, 2, 3, 4, 5, 3]
print("Lista originală:")
print(numere)
print("După transformarea în set:")
print(set(numere))
Valorile 2 și 3 apar de mai multe ori în
listă, dar în set vor apărea o singură dată.
Dacă vrem să obținem din nou o listă fără duplicate, putem scrie:
numere_unice = list(set(numere))
print(numere_unice)
11. Operații pe Seturi
Seturile permit operații asemănătoare celor din matematică.
primes = {2, 3, 5, 7}
evens = {2, 4, 6, 8}
Uniunea
Uniunea combină toate elementele din cele două seturi, fără
duplicate.
print("Uniune:")
print(primes | evens)
Putem face același lucru și folosind metoda
union().
print(primes.union(evens))
Intersecția
Intersecția păstrează doar elementele care apar în ambele seturi.
print("Intersecție:")
print(primes & evens)
În acest exemplu, rezultatul este {2}, deoarece numărul
2 apare în ambele seturi.
Putem folosi și metoda:
print(primes.intersection(evens))
Diferența
Diferența păstrează elementele care există în primul set, dar nu
există în al doilea.
print("Diferență:")
print(primes - evens)
Putem folosi și metoda:
print(primes.difference(evens))
Atenție: ordinea contează.
print(primes - evens)
print(evens - primes)
12. Adăugarea elementelor într-un Set
Pentru a adăuga un singur element într-un set, folosim metoda
add().
primes = {2, 3, 5, 7}
print("Înainte:")
print(primes)
primes.add(11)
print("După adăugare:")
print(primes)
Dacă elementul există deja, Python nu îl va adăuga din nou.
primes.add(5)
print(primes)
13. Eliminarea elementelor dintr-un Set
Pentru a elimina un element, putem folosi metoda
remove().
primes.remove(11)
print(primes)
Dacă elementul nu există, metoda remove() produce o
eroare.
O variantă mai sigură este metoda discard().
primes.discard(100)
print(primes)
Dacă valoarea 100 nu există, programul continuă fără
eroare.
14. Seturile sunt modificabile
Seturile sunt mutabile, ceea ce înseamnă că putem
adăuga și elimina elemente după ce setul a fost creat.
Totuși, elementele din interiorul unui set trebuie să fie valori care
nu se modifică, precum numere, stringuri sau tuple.
Rezumat
În această lecție ai învățat:
- ce este un dicționar;
- cum creezi dicționare folosind
{} și dict();
- cum accesezi valorile unui dicționar;
- cum folosești metoda
get();
- cum folosești
keys(), values() și items();
- ce este un set;
- cum elimini valorile duplicate;
- cum faci uniunea, intersecția și diferența dintre seturi;
- cum adaugi și elimini elemente dintr-un set;
- diferența dintre
remove() și discard().
Încheiere
Acum știi să lucrezi cu dicționare și
seturi, două dintre cele mai utile structuri de date
din Python.
Dicționarele te ajută să organizezi informațiile folosind perechi
cheie – valoare, iar seturile te ajută să păstrezi valori unice și să
elimini duplicatele.
În lecția următoare vom învăța despre
tupluri, liste avansate și mutabilitate, pentru a
putea începe să construim programe mai complexe.