I set e i frozenset sono due tipi di collezioni in Python utilizzate per rappresentare insiemi di elementi univoci.

Set

==Un set in Python Γ¨ una collezione non ordinata di elementi univoci. Questo significa che, a differenza delle liste o delle tuple, un set non puΓ² contenere duplicati.== I set sono implementati utilizzando una struttura dati detta β€œhash table”, che consente di eseguire operazioni di inserimento, rimozione e verifica della presenza di un elemento in tempo quasi costante. I set sono mutabili, il che significa che Γ¨ possibile modificarli dopo la loro creazione.

Ecco come Γ¨ possibile creare un set in Python:

# Creazione di un set
my_set = {1, 2, 3, 4, 5}

In questo esempio, abbiamo creato un set denominato my_set contenente cinque elementi. Nota che utilizziamo le parentesi graffe {} per definire un set.

I set supportano una serie di operazioni comuni, tra cui:

  • Aggiunta di elementi: Puoi aggiungere un elemento a un set utilizzando il metodo add().
my_set.add(6)
  • Rimozione di elementi: Puoi rimuovere un elemento da un set utilizzando il metodo remove().
my_set.remove(3)
  • Unione di set: Puoi unire due set utilizzando l’operatore di unione | o il metodo union().
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2  # Oppure union_set = set1.union(set2)
  • Intersezione di set: Puoi ottenere l’intersezione di due set utilizzando l’operatore di intersezione & o il metodo intersection().
intersection_set = set1 & set2  # Oppure intersection_set = set1.intersection(set2)
  • Differenza di set: Puoi ottenere la differenza tra due set utilizzando l’operatore di differenza - o il metodo difference().
difference_set = set1 - set2  # Oppure difference_set = set1.difference(set2)
  • Verifica della presenza di un elemento: Puoi verificare se un elemento Γ¨ presente in un set utilizzando l’operatore in.
element_present = 3 in set1  # RestituirΓ  True
  • Iterazione sui set: Puoi iterare sugli elementi di un set utilizzando un ciclo for.
for element in my_set:
    print(element)

frozenset

A differenza dei set, ==i frozenset in Python sono immutabili, il che significa che non Γ¨ possibile modificarli dopo la loro creazione==. Questo li rende utili quando Γ¨ necessario garantire che un insieme di elementi rimanga costante nel tempo. I frozenset sono implementati utilizzando una struttura dati simile a un set, ma questa struttura dati Γ¨ immutabile.

Ecco come Γ¨ possibile creare un frozenset in Python:

# Creazione di un `frozenset`
my_`frozenset` = `frozenset`([1, 2, 3, 4, 5])

In questo esempio, abbiamo creato un frozenset denominato my_frozensetβ€œ contenente gli stessi elementi del set precedente.

PoichΓ© i frozenset sono immutabili, non Γ¨ possibile aggiungere o rimuovere elementi da un frozenset. Tuttavia, puoi eseguire operazioni come l’intersezione, la differenza e la verifica della presenza di elementi nello stesso modo in cui lo faresti con un set.

Ecco alcune operazioni comuni con i frozenset:

  • Intersezione di frozenset: Puoi ottenere l’intersezione di due frozenset utilizzando l’operatore di intersezione & o il metodo intersection().
`frozenset`1 = `frozenset`([1, 2, 3])
`frozenset`2 = `frozenset`([3, 4, 5])
intersection_`frozenset` = `frozenset`1 & `frozenset`2  # Oppure intersection_`frozenset` = `frozenset`1.intersection(`frozenset`2)
  • Differenza di frozenset: Puoi ottenere la differenza tra due frozenset utilizzando l’operatore di differenza - o il metodo difference().
difference_`frozenset` = `frozenset`1 - `frozenset`2  # Oppure difference_`frozenset` = `frozenset`1.difference(`frozenset`2)
  • Verifica della presenza di un elemento in un frozenset: Puoi verificare se un elemento Γ¨ presente in un frozenset utilizzando l’operatore in.
element_present = 3 in `frozenset`1  # RestituirΓ  True
  • Iterazione sui frozenset: Puoi iterare sugli elementi di un frozenset utilizzando un ciclo for nello stesso modo in cui lo faresti con un set.
for element in my_`frozenset`:
    print(element)

Un’altra caratteristica importante dei frozenset Γ¨ che possono essere utilizzati come chiavi nei dizionari, a differenza dei set mutabili. Questo Γ¨ possibile poichΓ© i frozenset sono immutabili e quindi hashabili.

my_dict = {my_`frozenset`: "Valore del `frozenset`"}

Inoltre, poichΓ© i frozenset sono immutabili, sono piΓΉ adatti per essere utilizzati in contesti in cui Γ¨ necessaria l’immutabilitΓ , ad esempio all’interno di dizionari o come elementi di set piΓΉ grandi.

Differenze chiave tra set e frozenset

  1. MutabilitΓ : I set sono mutabili, il che significa che Γ¨ possibile modificarli dopo la loro creazione, mentre i frozenset sono immutabili e non possono essere modificati.
  2. Hashability: I frozenset sono hashabili e possono essere utilizzati come chiavi nei dizionari, mentre i set mutabili non possono essere utilizzati come chiavi nei dizionari poichΓ© non sono hashabili.
  3. Operazioni di inserimento e rimozione: I set supportano operazioni di inserimento e rimozione di elementi, mentre i frozenset non supportano queste operazioni poichΓ© sono immutabili.
  4. Utilizzo: I set sono utilizzati quando Γ¨ necessario un insieme mutabile di elementi, mentre i frozenset sono utilizzati quando Γ¨ necessario garantire che l’insieme rimanga costante e immutabile nel tempo.