Riferimenti: SoftPython - tuple 1
Esc
Summer School Data Science 2023 - Modulo 1 informatica: Moodle
Docente: David Leoni david.leoni@unitn.it
Esercitatore: Luca Bosotti luca.bosotti@studenti.unitn.it
Una tupla in Python è una sequenza immutabile di elementi eterogenei che ammette duplicati
Le tuple si creano con le parentesi tonde ()
e separando gli elementi da virgole ,
Qualche esempio:
numeri = (6,7,5,7,7,9)
print(numeri)
(6, 7, 5, 7, 7, 9)
roba = (4, "carta", 5, 2,"scatole", 7) # tupla eterogenea
Per creare una tupla di un solo elemento: aggiungi una virgola dopo l'ultimo elemento:
tuplina = (4,) # occhio alla virgola !!!
type(tuplina)
tuple
Per vedere la differenza, scriviamo qua sotto (4)
senza virgola:
farlocca = (4)
type(farlocca)
int
Vediamo che farlocca
è un int
...
4
è stato valutato come un'espressione dentro delle tonde e il risultato è il contenuto delle tonde!vuota = ()
print(vuota)
()
type(vuota)
tuple
Per assegnare dei valori a delle variabili è possibile usare una notazione del genere,
in cui a sinistra dell' =
mettiamo nomi di variabili e a destra una sequenza di valori:
a,b,c = 1, 2, 3
b
2
Se ci chiediamo cosa sia quel 1,2,3
, possiamo provare a mettere a sinistra solo una variabile:
# ATTENZIONE: MEGLIO EVITARE !
x = 1,2,3
type(x)
tuple
Vediamo che Python ha considerato quel 1,2,3
come una tupla.
Attenzione: Se trovi strane tuple durante l'esecuzione, cerca virgole extra!
stringa_farlocca = "ciao", # OCCHIO
stringa_farlocca
('ciao',)
Puoi creare una tupla da una qualsiasi sequenza, per esempio da una lista:
tuple( [8,2,5] )
(8, 2, 5)
list( (3,4,2,3) ) # viceversa
[3, 4, 2, 3]
Data una tupla x di numeri disordinati, scrivere del codice che cambia l’assegnazione di x
in modo che abbia assegnata una tupla con i numeri ordinati.
x
SUGGERIMENTO: Come già scritto, le tuple NON hanno il metodo sort
(perchè le muterebbe), ma le liste ce l’hanno...
Esempio - dati:
x = (3,4,2,5,5,5,2,3)
dopo il tuo codice deve risultare
>>> print(x)
(2, 2, 3, 3, 4, 5, 5, 5)
guarda la prossima slide...
I seguenti operatori funzionano sulle tuple e si comportano esattamente come per le liste:
Operatore | Sintassi | Risultato | Significato |
---|---|---|---|
lunghezza | len (tuple) |
int |
Ritorna la lunghezza di una tupla |
indice | tuple[ int] |
object |
Legge un elemento all'indice specificato |
slice | tuple[ int: int] |
tuple |
Estrae una sotto-tupla - ritorna una NUOVA tupla |
concatenazione | tuple + tuple |
tuple |
Concatena due tuple - ritorna una NUOVA tupla |
appartenenza | object in tuple |
bool |
Controlla se un elemento è presente in una tupla |
replicazione | tuple * int |
tuple |
Replica la tupla - ritorna una NUOVA tupla |
uguaglianza | == ,!= |
bool |
Controlla se due tuple sono uguali o differenti |
Riferimento: SoftPython - Tuple
Le slice creano una NUOVA tupla
Pensaci prima di cliccare!
La concatenazione crea una NUOVA tupla
Le tuple sono oggetti di tipo tuple
e possiedono dei metodi che permettono di operare su di esse:
Metodo | Ritorna | Descrizione |
---|---|---|
tuple.index(object) | int |
Trova la prima occorrenza di un elemento e ne ritorna la posizione |
tuple.count(object) | int |
Conta le occorrenze di un elemento |