frozenset() în Python

O mulțime imutabilă, care poate fi cheie de dicționar sau element al altei mulțimi.

Sintaxă
frozenset(iterabil=())

Ce face frozenset()

frozenset are toate operațiile de citire ale lui set (reuniune, intersecție, in, issubset…), dar nu poate fi modificat: nu are add, remove sau update.

Pentru că este imutabil, are valoare hash, deci poate fi cheie într-un dicționar sau element într-o mulțime, lucru imposibil pentru un set obișnuit.

Parametri

Parametru Descriere
iterabil Opțional. Elementele mulțimii.

Ce returnează

Un obiect frozenset.

Exemple

Exemplul 1: Chei formate din mai multe elemente

distante = {
    frozenset({"Iași", "Cluj"}): 390,
    frozenset({"Iași", "București"}): 390,
    frozenset({"Cluj", "Arad"}): 270,
}
print(distante[frozenset({"Cluj", "Iași"})])
f = frozenset("banana")
print(sorted(f), "a" in f)
try:
    f.add("x")
except AttributeError as e:
    print("Eroare:", e)

Rezultat

390
['a', 'b', 'n'] True
Eroare: 'frozenset' object has no attribute 'add'

Greșeli frecvente

  • Folosești un set obișnuit ca cheie și primești TypeError: unhashable type: 'set'. Transformă-l în frozenset.

Comenzi înrudite

  • set (mulțimi): Mulțimea este o colecție fără duplicate și fără ordine, utilă pentru valori unice și operații de reuniune sau intersecție.
  • hash(): Returnează valoarea hash a unui obiect, folosită intern de dicționare și mulțimi.
  • dict (dicționare): Dicționarul păstrează perechi cheie: valoare și găsește rapid valoarea după cheie.