🐍

Exerciții Practice cu Dicționare

Programare Python Intermediate 1 min read 0 words

Exerciții Practice cu Dicționare

Exercițiul 1: Iterare prin Dicționar

Problemă: Ce afișează următorul cod?

dct = {}
dct['1'] = (1, 2)
dct['2'] = (2, 1)
for x in dct.keys():
    print(dct[x][1], end="")

Răspuns: 21

Explicație:

  • dct['1'][1] = 2 (al doilea element din tuplu)
  • dct['2'][1] = 1 (al doilea element din tuplu)

Exercițiul 2: Chei de Dicționar

Problemă: Care dintre următoarele poate fi cheie de dicționar?

  • a) [1, 2, 3] - listă
  • b) (1, 2, 3) - tuplu
  • c) {1, 2, 3} - mulțime
  • d) {"a": 1} - dicționar

Răspuns: b) Tuplul

Explicație: Cheile trebuie să fie hashable (imutabile). Listele, mulțimile și dicționarele sunt mutabile.


Exercițiul 3: Metoda get()

Problemă: Ce returnează d.get("x", 100) dacă d = {"a": 1, "b": 2}?

Răspuns: 100

Explicație: "x" nu există, așa că se returnează valoarea implicită.


Exercițiul 4: Crearea Dicționarului

Problemă: Creează un dicționar cu numerele 1-5 ca chei și pătratele lor ca valori.

Soluție:

# Cu comprehension
d = {x: x**2 for x in range(1, 6)}
print(d)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

# Cu buclă
d = {}
for x in range(1, 6):
    d[x] = x**2

Exercițiul 5: Numărare Elemente

Problemă: Numără frecvența fiecărui caracter în șirul "hello".

Soluție:

text = "hello"
frecventa = {}

for c in text:
    frecventa[c] = frecventa.get(c, 0) + 1

print(frecventa)  # {'h': 1, 'e': 1, 'l': 2, 'o': 1}

Exercițiul 6: Inversarea Dicționarului

Problemă: Inversează cheile și valorile din {"a": 1, "b": 2, "c": 3}.

Soluție:

original = {"a": 1, "b": 2, "c": 3}
inversat = {v: k for k, v in original.items()}
print(inversat)  # {1: 'a', 2: 'b', 3: 'c'}

Exercițiul 7: Dicționar Imbricat

Problemă: Accesează nota lui “Ana” din:

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

Soluție:

# Dacă știi cheia
nota = studenti["s1"]["nota"]  # 10

# Dacă cauți după nume
for student in studenti.values():
    if student["nume"] == "Ana":
        nota = student["nota"]
        break

Exercițiul 8: Combinarea Dicționarelor

Problemă: Combină {"a": 1, "b": 2} cu {"c": 3, "d": 4}.

Soluție:

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

# Soluția 1: update()
rezultat = d1.copy()
rezultat.update(d2)

# Soluția 2: unpacking (Python 3.5+)
rezultat = {**d1, **d2}

# Soluția 3: union (Python 3.9+)
rezultat = d1 | d2

Teste pentru Examen

  1. Ce returnează len({"a": 1, "b": 2, "a": 3})?

    • Răspuns: 2 (cheile duplicate se suprascriu)
  2. Ce face d.pop("cheie")?

    • Răspuns: Elimină și returnează valoarea pentru “cheie”
  3. Cum verifici dacă “x” e cheie în dicționar?

    • Răspuns: "x" in d
  4. Ce returnează d.keys()?

    • Răspuns: Un view cu cheile dicționarului
  5. Poate un tuplu de liste să fie cheie?

    • Răspuns: NU (listele sunt mutabile)

📚 Related Articles