15. Tuple e Set
In questa lezione parleremo di due nuovi tipi di dato: tuple e set.
Le tuple in Python
Come il tipo di dato lista visto nelle lezioni precedenti, anche il tipo tuple di Python rappresenta un insieme di elementi, definiti stavolta utilizzando una coppia di parentesi tonde, oppure senza alcuna parentesi ma separati da virgola.
>>> tupla = (2, 4, 9, 15, 23)
>>> type(tupla)
# output
<class 'tuple'>
###################
>>> tupla
# output
(2, 4, 9, 15, 23)
###################
>>> tupla_due = 7, 8, 9
>>> tupla_due
# output
(7, 8, 9)
Come per le liste, possiamo accedere agli elementi delle tuple utilizzando l'indice.
>>> tupla = (2, 4, 9, 15, 23)
>>> tupla[0]
# output
2
Le tuple sono immutabili
La grande differenza tra i tipi di dato tuple e list è che le tuple sono immutabili. Per questo motivo il dato tuple non dispone di un metodo append() e non possiamo usare l'istruzione del per rimuovere elementi. Questo risulta molto comodo in certe situazioni: tenetelo a mente!
>>> tupla.append(999)
# output
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
#####################################
>>> del tupla[0]
# output
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion
I set di Python
I set sono un altro tipo di dato di Python che permette di creare collezioni di elementi. I set vengono definiti con una coppia di parentesi graffe, e i valori sono separati da virgola
>>> my_set = {"asd", "qwerty", "cmd"}
>>> type(my_set)
# output
<class 'set'>
La caratteristica fondamentale dei set è che non possono contenere duplicati al loro interno.
>>> new_set = {"asd", "asd", "qwerty", "cmd"}
>>> new_set
# output
{'qwerty', 'cmd', 'asd'}
Il metodo add() dei set
A differenza delle tuple possiamo però aggiungere nuovi elementi col metodo add.
Provare ad aggiungere elementi già presenti non funzionerà!
>>> new_set = {"asd", "asd", "qwerty", "cmd"}
>>> new_set.add("cmd")
>>> new_set
# output
{'qwerty', 'cmd', 'asd'}
##############################
>>> new_set.add("nova")
>>> new_set
# output
{'qwerty', 'cmd', 'asd', 'nova'}