Tutorial del Python - Tipo di dati-Tupla

  1. Vantaggi di Tuple Over List
  2. Creare una tupla
  3. Accesso agli elementi della tupla
  4. Metodi della tupla Python
  5. Tuple Funzioni integrate:
  6. Controllo di appartenenza alla tupla
  7. Iterare attraverso una tupla

In questa sezione introduciamo come creare e utilizzare le tuple.

Una tupla è simile a una lista con la differenza che la tupla è immutabile ma la lista è mutabile.

Vantaggi di Tuple Over List

  1. Le tuple vengono utilizzate per lo più quando gli elementi hanno tipi di dati diversi, mentre le liste vengono utilizzate quando gli elementi sono dello stesso tipo di dati.
  2. L’attraversamento delle tuple è più veloce in quanto non è possibile aggiornare una tupla.
  3. È possibile utilizzare gli elementi immutabili della tupla come chiave nel dizionario. Questo non può essere fatto con una lista.
  4. Le tuple garantiscono la protezione dei dati in quanto immutabili.

Creare una tupla

Si può definire una tupla di Python usando le parentesi () e separare gli elementi con le virgole ,. Una tupla può avere elementi di qualsiasi tipo di dati.

>>> x = (3, 'pink', 3+8j)
>>> print('x[0] =', x[0])
x[0] = 3
>>> print('x[0:2] =', x[0:2])
x[0:2] = (3, 'pink')
>>> x[0] = 4
TypeError: 'tuple' object does not support item assignment

Se la tupla contiene un solo elemento, per esempio, l’elemento è di tipo dati stringa, allora la tupla non sarà considerata come una tupla ma come una stringa. Vedere l’esempio qui sotto:

>>> x = ("Python")
>>> print(type(x))
<class 'str'>

Si può vedere qui che il tipo di dati di x è str piuttosto che tuple. Per renderla una tupla si userà una virgola finale come:

>>> x = "Python",
>>> print(type(x))
<class 'tuple'>

Accesso agli elementi della tupla

Gli elementi della tupla sono accessibili in uno dei seguenti modi:

Indice

Un operatore di indice [] può essere usato per accedere agli elementi di una tupla. L’indice della tupla parte da 0. Se l’indice non è nell’intervallo (elemento non definito in quell’indice nella tupla), si avrà un IndexError. Si noti qui che l’indice deve essere un intero altrimenti si verificherà un TypeError.

>>> x = (3, 'pink', 3+8j)
>>> print(x[0])
3
>>> print(x[2])
(3+8j)

Indice negativo

Come per Python list, si possono usare gli indici negativi per accedere agli elementi delle tuple.

>>> l = (2, 4, 6, 8, 10)
>>> print(l[-1])
10
>>> print(l[-2])
8
>>> print(l[-3])
6

Slice

Un operatore di affettatura : è usato per estrarre una serie di elementi da una tupla.

>>> l = (2, 4, 6, 8, 10)
>>> print(l[1:3])		#prints from location 1 to 3
(4, 6)
>>> print(l[:2])		#prints from the beginning to location 2
(2, 4)
>>> print(l[2:])		#prints elements from location 2 onwards
(6, 8, 10)
>>> print(l[:])		#prints entire list
(2, 4, 6, 8, 10)

Tuple concatenate

Due tuple possono essere concatenate utilizzando operatore +.

>>> l = (2, 4, 6, 8, 10)
>>> print(l + (12, 14, 16)
(2, 4, 6, 8, 10, 12, 14, 16)

Cancellare una tupla

Gli elementi di una tupla non possono essere cancellati perché le tuple sono immutabili. Ma è possibile cancellare l’intera tupla utilizzando la parola chiave del:

l = (2, 4, 6, 8, 10)
del l

Metodi della tupla Python

Le tuple hanno solo due metodi, in quanto le tuple sono immutabili:

Metodi Descrizione
count(a) viene utilizzato per restituire un numero di elementi pari a a.
index(a) viene utilizzato per restituire l’indice del primo elemento pari a a.

Tuple Funzioni integrate:

Di seguito sono riportate le funzioni integrate di tuple applicabili al tuple per eseguire diversi compiti:

Funzioni Descrizione
all() restituire True quando tutti gli elementi della tupla sono True. Restituisce anche True quando la tupla è vuota.
any() restituire True quando uno qualsiasi degli elementi della tupla è True. Restituisce False quando la tupla è vuota.
enumerate() restituire l’indice e il valore di tutti gli elementi della tupla come tupla. Restituisce un oggetto enumerate.
len() restituire il numero di articoli in una tupla o la lunghezza della tupla.
tuple() convertire una sequenza (tupla, set, stringa, dizionario) in tupla.
max() restituire il numero massimo nella tupla.
min() restituire il numero minimo nella tupla.
sorted() restituire una tupla ordinata.
sum() restituire la somma di tutti gli elementi della tupla.

Controllo di appartenenza alla tupla

La in keyword controlla se un elemento è un membro della tupla o meno. Vedi il codice qui sotto:

>>> l = (2, 4, 6, 8, 10)
>>> print(5 in l)
False
>>> print(2 in l
True

Iterare attraverso una tupla

Si può iterare attraverso una tupla utilizzando for loop:

l = (2, 4, 6, 8, 10)
for i in l:
    print(i)
2
4
6
8
10