Python gli insiemi dichiarazione metodi e i frozenset
Autore:[Antonio Gallonetto]
Cosa sono i set gli insiemi in Python
L’obbiettivo di questa struttura è salvare più valori in un unico contenitore. Ho scritto contenitore invece che variabile perché i valori degli insiemi sono immutabili.
Caratteristiche dei set
- Non sono ordinati quindi non vi si può accedere ad esempio attraverso un indice. Quindi ogni volta che eseguiamo il software potrebbero avere un ordine diverso.
- Il valore al loro interno non è modificabile
- I valori al loro interno sono unici. Non permettono valori duplicati. Nel caso di valore duplicato comparirà nel set una volta soltanto
- Il tipo di valori al loro interno può essere molteplici. Nello stesso set possiamo avere, interi, stringhe, ecc. I tipi possibili sono tutti quelli che sono immutabili.
- Sono estensibili, è possibile aggiungere nuovi valori a questo contenitore
Sintassi di dichiarazione di un insieme di dati
nomeSet={elemento1,elemento2,..,elementon}
Dichiarazione di un insieme vuoto
nomeSet=set()
Abbiamo questa sintassi perché il set è un oggetto, in questo caso con set() andiamo a richiamare il creatore dell’oggetto.
Esempio
siglaProvince={"Mi","To","Vr","Tv","Bl","Ge","Ge"}
print(siglaProvince) ## ris {'Vr', 'Tv', 'To', 'Bl', 'Ge', 'Mi'}
Metodi relativi agli insiemi
- add()
- clear()
- copy()
- discard()
- pop()
- remove()
Metodo add()
Questo metodo aggiunge un elemento al set.
Sintassi
nomeSet.add(elemento)
Esempio
siglaProvince=set()
siglaProvince.add("To")
print(siglaProvince) ## ris {'To'}
Metodo clear()
clear svuota l’insieme
Sintassi
nomeSet.clear()
Esempio
siglaProvince={"Mi","To","Vr","Tv","Bl","Ge","Ge"}
siglaProvince.clear()
print(siglaProvince) ##ris set()
Metodo copy()
Questo metodo crea un insieme e copia il contenuto del set di partenza
Sintassi
nuovoSet=nomeSet.copy()
Esempio
siglaProvince={"Mi","To","Vr","Tv","Bl","Ge","Ge"}
insiemeTemp=siglaProvince.copy()
print(insiemeTemp) ## ris {'To', 'Mi', 'Vr', 'Ge', 'Bl', 'Tv'}
Metodo discard()
Rimuove un elemento dall’insieme di dati se è presente
Sintassi
nomeSet.discard(elemento)
Esempio
siglaProvince={"Mi","To","Vr","Tv","Bl","Ge","Ge"}
insiemeTemp=siglaProvince.copy()
insiemeTemp.discard("To")
print(siglaProvince) ##ris {'Vr', 'To', 'Bl', 'Tv', 'Ge', 'Mi'}
print(insiemeTemp) ##ris {'Vr', 'Bl', 'Tv', 'Ge', 'Mi'}
Metodo pop()
pop restituisce un valore arbitrario dall’insieme e lo rimuove dal set
Sintassi
valEliminato=nomeSet.pop()
Esempio
siglaProvince={"Mi","To","Vr","Tv","Bl","Ge","Ge"}
sigla1Rimossa=siglaProvince.pop()
print(sigla1Rimossa) ##ris Bl
sigla2Rimossa=siglaProvince.pop()
print(sigla2Rimossa) ##ris Mi
print(siglaProvince) ##ris {'To', 'Tv', 'Ge', 'Vr'}
Metodo remove()
Questo metodo rimuove un elemento dall’insieme, se l’elemento non è presente restituisce un KeyError
Sintassi
nomeSet.remove(elemento)
Esempio
siglaProvince={"Mi","To","Vr","Tv","Bl","Ge","Ge"}
my_string = input("Inserisci la provincia da rimuovere: ")
try :
siglaProvince.remove(my_string)
print("Provincia rimossa correttamente")
print(siglaProvince)
except KeyError:
print("Provincia non presente nell'insieme")
len()
Dell’oggetto insieme è sempre possibile conoscerne la dimensione con la chiamata alla funzione len().
La sintassi è la seguente: dimInsieme=len(nomeInsieme)
Frozenset
I frozenset sono gli insiemi congelati, i set che non vogliamo si possa modificarne la dimensione.
Sintassi
siglaProvince=frozenset({elemento1,elemento2,..,elementon"})
Esempio
siglaProvince=frozenset({"Mi","To","Vr","Tv","Bl","Ge","Ge"})
Metodi
Il solo metodo che non varia l’insieme è copy ed è l’unico che può essere richiamato per un frozenset.