Tuple 1: introduzione¶

Riferimenti: SoftPython - tuple 1

  • visualizza al meglio in
  • versione stampabile: clicca qua
  • per navigare nelle slide: premere 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

Creare tuple¶

Una tupla in Python è una sequenza immutabile di elementi eterogenei che ammette duplicati

  • perciò possiamo mettere gli oggetti che vogliamo
  • ... di tipi diversi
  • ... e ripetuti

Le tuple si creano con le parentesi tonde () e separando gli elementi da virgole ,

Qualche esempio:

In [2]:
numeri = (6,7,5,7,7,9)
In [3]:
print(numeri)
(6, 7, 5, 7, 7, 9)
In [4]:
roba = (4, "carta", 5, 2,"scatole", 7)   # tupla eterogenea

Per creare una tupla di un solo elemento: aggiungi una virgola dopo l'ultimo elemento:

In [5]:
tuplina = (4,)  # occhio alla virgola !!!
In [6]:
type(tuplina)
Out[6]:
tuple

Per vedere la differenza, scriviamo qua sotto (4) senza virgola:

In [7]:
farlocca = (4)
In [8]:
type(farlocca)
Out[8]:
int

Vediamo che farlocca è un int...

  • il 4 è stato valutato come un'espressione dentro delle tonde e il risultato è il contenuto delle tonde!

Tupla vuota¶

In [9]:
vuota = ()
In [10]:
print(vuota)
()
In [11]:
type(vuota)
Out[11]:
tuple

Tuple senza parentesi¶

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:

In [12]:
a,b,c = 1, 2, 3
In [13]:
b
Out[13]:
2

Se ci chiediamo cosa sia quel 1,2,3, possiamo provare a mettere a sinistra solo una variabile:

In [14]:
# ATTENZIONE: MEGLIO EVITARE !
x = 1,2,3
In [15]:
type(x)
Out[15]:
tuple

Vediamo che Python ha considerato quel 1,2,3 come una tupla.

Attenzione: Se trovi strane tuple durante l'esecuzione, cerca virgole extra!

In [16]:
stringa_farlocca = "ciao",   # OCCHIO
In [17]:
stringa_farlocca
Out[17]:
('ciao',)

Conversioni¶

Puoi creare una tupla da una qualsiasi sequenza, per esempio da una lista:

In [18]:
tuple( [8,2,5] )
Out[18]:
(8, 2, 5)
In [19]:
list( (3,4,2,3)  )   # viceversa
Out[19]:
[3, 4, 2, 3]

Esercizio - ordinare 1/2¶

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.

  • il tuo codice deve funzionare per qualsiasi tupla 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...

Esercizio - ordinare 2/2¶

In [20]:
 
Out[20]:

Operatori¶

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

Slice¶

Le slice creano una NUOVA tupla

In [21]:
 
Out[21]:
Python Tutor visualization

Che succede se mettiamo una lista dentro una tupla?¶

Pensaci prima di cliccare!

In [22]:
 
Out[22]:
Python Tutor visualization

Concatenazione¶

La concatenazione crea una NUOVA tupla

In [23]:
 
Out[23]:
Python Tutor visualization

Metodi¶

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