Tupla
Una tupla è un elenco immutabile. Una tupla non può essere modificata in alcun modo una volta che è stata creata.
Perché sono necessarie le tuple?
- Nel caso di protezione di dati da modifiche (intenzionali o accidentali).
- Le tuple occupano meno spazio in memoria e sono più veloci delle liste.
- Per restituire più valori da una funzione.
- Le tuple possono essere utilizzate come chiavi del dizionario (ne parleremo più avanti).
Creazione di tuple
1 modo: come un elenco, ma con parentesi
1
2
3
|
un = (1,2,3,4,5)
print(tipo(a)) # classe 'tupla'
stampa(a) # (1, 2, 3, 4, 5)
|
|
2 vie: utilizzando la funzione
tuple()
1
2
3
|
b = tupla((1,2,3,4,5))
print(tipo(b)) # <classe 'tupla'>
stampa(b) # (1, 2, 3, 4, 5)
|
Devi ricordare!
- Le tuple sono una lista immutabile.
- Gli elementi di una tupla possono essere di diversi tipi.
- Puoi creare una tupla usando la funzione
tuple()
o elencando gli elementi tra parentesi.
Caratteristiche di tupla
1) Puoi assegnare valori a una tupla senza usare le parentesi/
Ad esempio, puoi creare una tupla come questa:
1
2
3
|
a = 1,2,3,4,5
print(a[3]) # 4 È possibile accedere a un elemento di una tupla allo stesso modo di un elemento di una lista,
# specificando l'indice dell'elemento tra parentesi quadre.
|
2) Per dichiarare una tupla che include un singolo elemento, è necessario utilizzare una virgola finale:
1
2
3
4
|
a = 'a'
b = 'b',
print(tipo(b)) # <classe 'tupla'>
print(tipo(a)) # <classe 'str'>
|
3) Si possono assegnare i valori degli elementi della tupla alle singole variabili:
1
2
3
|
mia_tupla = (1, 2, 3, 4, 5)
a, b, c, d, e = mia_tupla
stampa(c) #3
|
Gli underscore _ possono essere usati come variabili non necessarie
1
2
3
|
mia_tupla = (1, 2, 3)
a, _, _ = mia_tupla
stampa(a) #1
|
Il numero di variabili deve corrispondere al numero di elementi della tupla!
4) Una tupla può contenere vari elementi nidificati. In questo caso, quando si fa riferimento a elementi nidificati, è necessario utilizzare parentesi quadre aggiuntive
1
2
|
mia_tupla = (('a', 'b', 'c'), [1, 2], ((1, 'a' ), ('b', 'c')))
print(mia_tupla[2][1]) # ('b', 'c')
|
|
Riferito agli elementi. Tuple nidificate
Le tuple possono contenere altre tuple come elementi. Inoltre, elenchi, stringhe e così via possono essere utilizzati come elementi di una tupla.
L'accesso agli elementi è simile all'accesso agli elementi di un elenco, specificando l'indice dell'elemento tra parentesi quadre. L'indicizzazione inizia da zero.
Quando si fa riferimento a elementi nidificati, è necessario utilizzare parentesi quadre aggiuntive.
mia_tupla = (('a', 'b', 'c'), [1, 2], ((1, 'a' ), ('b', 'c')))
print(mia_tupla[2][1]) # ('b', 'c')
|
Confronto di tuple
Quando si confrontano le tuple:
- i numeri vengono confrontati per valore;
- stringhe in ordine lessicografico;
- in caso di parità di elementi nelle stesse posizioni, vengono confrontati i seguenti elementi;
- il confronto degli elementi avverrà fino alla prima disuguaglianza;
- durante il confronto, gli elementi devono essere convertiti nello stesso tipo (non è possibile confrontare un numero e una stringa).
Esempio
1
2
3
4
5
6
7
8
9
10
undici
12
|
LA=4
B=8
C = 'a',
D = 'z',
E = (14, 'massimo', 'minimo')
F = (14, 'massimo', 'minimo')
K=999
print(A < B) # Vero
print(C < D) # Vero
print(E > F) # Vero
print(K < F) # Falso
print(C < K) # TypeError: '<' non supportato
# tra istanze di 'str' e 'int'
|
|
Fette
L'affettatura può essere eseguita in modo simile alle liste.
Va ricordato che prendendo un elemento per indice o per slice ( slice ), non modifichiamo in alcun modo la tupla, ne copiamo semplicemente una parte per un ulteriore utilizzo (ad esempio, per stampare , alcuni calcoli, ecc. .p.).
Sintassi delle sezioni
my_tuple[start:stop:step] # start, stop e step
|
Concatenazione di tuple
È possibile concatenare le tuple per creare un nuovo oggetto (concatenazione, simile alle stringhe).
1
2
3
4
|
x = (1,2,3,4)
y = (5,6,7,8)
z = x + y
print(z) # (1, 2, 3, 4, 5, 6, 7, 8)
|
Durante l'operazione di moltiplicazione, la tupla viene ripetuta più volte (simile alla moltiplicazione di stringhe).
1
2
3
|
x = (1,2,3,4)
z = x*2
print(z) # (1, 2, 3, 4, 1, 2, 3, 4)
|
Rimozione di una tupla
Le operazioni e i metodi di tupla sono simili alle operazioni e ai metodi di elenco. Ad eccezione di quelli che modificano gli elementi di una tupla.
Un elemento contenuto in una tupla non può essere aggiunto o rimosso a causa dell'immutabilità. Tuttavia, la tupla stessa può essere cancellata usando l'operatore del .
1
2
|
studente = (2007, 'Ivan', 'Ivanov', '9-A', Falso)
del studente
|
|
Metodi per lavorare con le tuple
I metodi per lavorare con le tuple sono simili ai metodi per lavorare con gli elenchi, ad eccezione dei metodi che modificano la tupla. Tali metodi non sono disponibili a causa dell'immutabilità della tupla. Possono essere applicati creando una nuova tupla.
Esempio di ordinamento di tuple
Puoi facilmente ordinare una tupla usando la funzione sorted() .
1
2
3
4
|
un = (5, 3, 2, 1, 4)
print(ordinato(a)) # [1, 2, 3, 4, 5]
a = tupla(ordinata(a))
stampa(a) # (1, 2, 3, 4, 5)
|
Nota che metodi come append() , extend() , remove() NON funzionano con le tuple e pop() .
|