Python - Tuple

Una tupla è una sequenza di oggetti Python immutabili. Le tuple sono sequenze, proprio come le liste. Le differenze tra le tuple e le liste sono che le tuple non possono essere modificate a differenza delle liste e le tuple usano le parentesi, mentre le liste usano le parentesi quadre.

Creare una tupla è semplice come inserire diversi valori separati da virgole. Facoltativamente è possibile inserire anche questi valori separati da virgole tra parentesi. Ad esempio:

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";

La tupla vuota è scritta come due parentesi che non contengono nulla -

tup1 = ();

Per scrivere una tupla contenente un singolo valore devi includere una virgola, anche se c'è un solo valore -

tup1 = (50,);

Come gli indici di stringa, gli indici di tupla iniziano da 0 e possono essere suddivisi, concatenati e così via.

Accesso ai valori nelle tuple

Per accedere ai valori in tupla, utilizzare le parentesi quadre per affettare insieme all'indice o agli indici per ottenere il valore disponibile in quell'indice. Ad esempio:

#!/usr/bin/python

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0];
print "tup2[1:5]: ", tup2[1:5];

Quando il codice sopra viene eseguito, produce il seguente risultato:

tup1[0]:  physics
tup2[1:5]:  [2, 3, 4, 5]

Aggiornamento delle tuple

Le tuple sono immutabili, il che significa che non è possibile aggiornare o modificare i valori degli elementi della tupla. Puoi prendere porzioni di tuple esistenti per creare nuove tuple come dimostra il seguente esempio:

#!/usr/bin/python

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# Following action is not valid for tuples
# tup1[0] = 100;

# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;

Quando il codice sopra viene eseguito, produce il seguente risultato:

(12, 34.56, 'abc', 'xyz')

Elimina elementi tupla

Non è possibile rimuovere singoli elementi della tupla. Non c'è, ovviamente, niente di sbagliato nel mettere insieme un'altra tupla con gli elementi indesiderati scartati.

Per rimuovere esplicitamente un'intera tupla, è sufficiente utilizzare il deldichiarazione. Ad esempio:

#!/usr/bin/python

tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : ";
print tup;

Questo produce il seguente risultato. Notare un'eccezione sollevata, questo perché afterdel tup la tupla non esiste più -

('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
   File "test.py", line 9, in <module>
      print tup;
NameError: name 'tup' is not defined

Operazioni di base sulle tuple

Le tuple rispondono agli operatori + e * in modo molto simile alle stringhe; significano anche qui concatenazione e ripetizione, tranne per il fatto che il risultato è una nuova tupla, non una stringa.

In effetti, le tuple rispondono a tutte le operazioni di sequenza generali che abbiamo usato sulle stringhe nel capitolo precedente -

Espressione Python Risultati Descrizione
len ((1, 2, 3)) 3 Lunghezza
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) Concatenazione
("Ciao!",) * 4 ("Ciao!", "Ciao!", "Ciao!", "Ciao!") Ripetizione
3 pollici (1, 2, 3) Vero Appartenenza
for x in (1, 2, 3): print x, 1 2 3 Iterazione