🐍

Dicționare în Python

Programare Python Intermediar 1 min citire 0 cuvinte

Dicționare în Python

Ce este un Dicționar?

Dicționarul este o colecție de perechi cheie-valoare, neordonată (în Python <3.7) și mutabilă.

student = {
    "nume": "Ana",
    "varsta": 22,
    "note": [9, 10, 8]
}

gol = {}

Accesarea Valorilor

d = {"a": 1, "b": 2, "c": 3}

d["a"]          # 1
# d["x"]        # KeyError!

d.get("a")      # 1
d.get("x")      # None (fără eroare)
d.get("x", 0)   # 0 (valoare implicită)

Modificarea Dicționarelor

Adăugare și actualizare

d = {"a": 1}

d["b"] = 2              # Adaugă {"a": 1, "b": 2}
d["a"] = 10             # Actualizează {"a": 10, "b": 2}
d.update({"c": 3})      # {"a": 10, "b": 2, "c": 3}

Eliminare

d = {"a": 1, "b": 2, "c": 3}

del d["a"]              # {"b": 2, "c": 3}
val = d.pop("b")        # val=2, d={"c": 3}
item = d.popitem()      # Elimină ultima pereche
d.clear()               # {}

Iterare prin Dicționare

d = {"a": 1, "b": 2, "c": 3}

# Prin chei (implicit)
for cheie in d:
    print(cheie)

# Explicit prin chei
for cheie in d.keys():
    print(cheie)

# Prin valori
for valoare in d.values():
    print(valoare)

# Prin perechi cheie-valoare
for cheie, valoare in d.items():
    print(f"{cheie}: {valoare}")

Metode Utile

d = {"a": 1, "b": 2}

len(d)          # 2
list(d.keys())  # ['a', 'b']
list(d.values()) # [1, 2]
list(d.items()) # [('a', 1), ('b', 2)]
"a" in d        # True (verifică cheile)
d.copy()        # Copie superficială

Chei Valide

Cheile trebuie să fie hashable (imutabile):

# VALID
d = {
    "text": 1,           # str - OK
    42: "numar",         # int - OK
    (1, 2): "tuplu",     # tuple - OK (dacă conține doar imutabile)
}

# INVALID - va genera TypeError
# d = {[1, 2]: "lista"}  # liste NU pot fi chei
# d = {{}: "dict"}       # dicționare NU pot fi chei

Dicționare Imbricate

studenti = {
    "s1": {"nume": "Ana", "nota": 10},
    "s2": {"nume": "Ion", "nota": 8}
}

studenti["s1"]["nume"]  # "Ana"
studenti["s2"]["nota"]  # 8

De Reținut

Cheile unui dicționar pot fi de tipuri diferite, dar trebuie să fie hashable. Valorile pot fi de orice tip, inclusiv alte dicționare sau liste.

Întrebări de Verificare

  1. Ce returnează d.get("x", 0) dacă “x” nu există?
  2. Cum verifici dacă o cheie există în dicționar?
  3. Ce tipuri de date pot fi chei?
  4. Care este diferența dintre d["x"] și d.get("x")?

📚 Articole Corelate