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 |