La tupla in python

Nel linguaggio Python la tupla è un elenco immodificabile di oggetti eterogenei, valori numerici e alfanumerici. Una volta definita una tupla non può essere modificata, né possono essere aggiunti nuovi elementi.

elenco = ( elemento1, elemento2, ... , elemento n )

Un esempio pratico di tupla

Si sceglie il nome della variabile vettore seguita dal simbolo uguale.

giorni=("lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica")

L'elenco dei valori della tupla è racchiusa tra due variabili tonde.

I valori sono separati tra loro dalla virgola.

Nota. Tecnicamente, le parentesi sono facoltative per definire una tupla ma è buona pratica usarle. Sono invece obbligatorie le virgole, anche se la tupla è composta da un solo elemento.

Una tupla può contenere sia valori alfanumerici che numerici.

E' quindi possibile scrivere una tupla come la seguente:

elenco=("ottimo", 10, "discreto", 9 )

I valori alfanumerici sono racchiusi tra doppie virgolette mentre quelli numerici non hanno virgolette o apici.

Qual è la differenza tra tuple e liste in Python

Nel linguaggio Python la lista può essere modificata.

In una lista si può cambiare il contenuto degli elementi o aggiungerne nuovi elementi in coda all'elenco.

In una tupla, invece, non è possibile né modificare il contenuto degli elementi, né aggiungerne nuovi.

Come distinguere una lista da una tupla? Per riconoscere una lista da un vettore è sufficiente osservare le parentesi che racchiudono i valori. Se le parentesi sono quadre si tratta di una lista. Se le parentesi sono tonde si tratta di una tupla.

Come trasformare una tupla in lista

Per convertire una tupla in una lista utilizzo l'istruzione list.

lista = list ( tupla )

Come trasformare una lista in tupla

Per convertire una lista in tupla utilizzo l'istruzione tuple.

tupla = tuple ( lista )

Perché usare le tuple?

Se un vettore non deve essere modificato, è preferibile usare una tupla piuttosto che una lista per le seguenti ragioni.

  1. La computazione è più veloce. Il tempo di elaborazione di una tupla è minore rispetto a una lista.
  2. Lo spazio di memoria è inferiore. Le tuple consumano una minore quantità dello spazio di memoria rispetto alle liste.

In conclusione, a parità di condizioni l'uso delle tuple consente al programmatore di ridurre la complessità spaziale e temporale dell'algoritmo.

Il caso di una tupla con un elemento

Quando creo una lista con un solo elemento devo aggiungere la virgola.

In caso contrario l'interprete Python la tratterebbe come una stringa

Esempio

tupla=('uno',)

Se scrivessi tupla=('uno') l'interprete considererebbe l'istruzione come un'assegnazione tupla='uno'.

Esempi

Alcuni esempi pratici di utilizzo

Esempio 1

Con le tuple posso utilizzare lo slicing.

giorni=("lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica")
print( giorni[:3] )

Lo slicing estrae dal primo al terzo elemento [:3]

Lo zero è sottinteso ossia [:3] equivale a [0:3]

('lunedì', 'martedì', 'mercoledì')

Esempio 2

giorni=("lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica")
print( giorni[-1] )

L'output è il seguente:

('domenica')

In questo caso prende in considerazione soltanto l'ultimo elemento della tupla.

I metodi delle tuple

Le tuple hanno pochi metodi. Soltanto count e index.

Count()

Il metodo count conta le occorrenze di un elemento nella tupla. Se non lo trova restituisce un'eccezione.

Esempio

giorni=("lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica")
print( giorni.count('martedì' )

L'output è il seguente

1

L'elemento cercato ('martedì') si presenta una sola volta nella tupla.

Index()

Il metodo indice cerca un elemento nella tupla e ne restituisce la posizione. Se non lo trova restituisce un'eccezione.

Esempio

giorni=("lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica")
print( giorni.index('sabato' )

L'output è il seguente

5

L'elemento cercato ('sabato') è al sesto posto della tupla.

La sua posizione è la quinta (5) perché il primo elemento ha sempre una posizione zero.

Come cercare un elemento nella tupla

Per ricercare qualcosa in una tupla posso usare il metodo index o count.

Tuttavia, questi metodi restituiscono un'eccezione se non trovano nulla.

E' quindi preferibile usare l'operatore IN perché non restituisce eccezioni ma soltanto un valore logico booleano true o false.

Un esempio pratico

Voglio verificare l'esistenza di un valore ('sabato') dentro la stringa.

giorni=("lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica")
'sabato ' in giorni

Il risultato sullo schermo è il seguente:

true

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Le variabili in Python

  1. Le variabili
  2. I tipi di variabili
  3. Le stringhe
  4. L'assegnazione in linea
  5. Le liste
  6. Le tuple
  7. I set
  8. I dizionari