Python Tuple è una raccolta di oggetti separati da virgole. In un certo senso, una tupla è simile a una lista Python in termini di indicizzazione, oggetti annidati e ripetizione, ma la differenza principale tra le due è che la tupla Python è immutabile, a differenza della lista Python che è mutabile.
Creazione di tuple Python
Esistono vari modi con cui è possibile creare una tupla in Pitone . Sono i seguenti:
- Utilizzando parentesi tonde
- Con un oggetto
- Costruttore di tuple
Crea tuple utilizzando parentesi tonde ()
Per creare una tupla utilizzeremo gli operatori ().
Python3
var> => (> 'Geeks'> ,> 'for'> ,> 'Geeks'> )> print> (var)> |
>
>
Produzione:
('Geeks', 'for', 'Geeks')>
Crea una tupla con un elemento
Python 3.11 ci fornisce un altro modo per creare una tupla.
Python3
values :> tuple> [> int> |> str> , ...]> => (> 1> ,> 2> ,> 4> ,> 'Geek'> )> print> (values)> |
>
>
Produzione:
Qui, nel frammento sopra stiamo considerando una variabile chiamata valori che contiene una tupla composta da int o str, '...' significa che la tupla conterrà più di un int o str.
(1, 2, 4, 'Geek')>
Nota: Nel caso in cui stai generando una tupla con un singolo elemento, assicurati di aggiungere una virgola dopo l'elemento. Vediamo un esempio dello stesso.
Python3
mytuple> => (> 'Geeks'> ,)> print> (> type> (mytuple))> #NOT a tuple> mytuple> => (> 'Geeks'> )> print> (> type> (mytuple))> |
>
>
Produzione:
>
Costruttore di tuple in Python
Per creare una tupla con un costruttore Tuple, passeremo gli elementi come parametri.
Python3
tuple_constructor> => tuple> ((> 'dsa'> ,> 'developement'> ,> 'deep learning'> ))> print> (tuple_constructor)> |
>
>
Produzione :
('dsa', 'developement', 'deep learning')>
Cosa è immutabile nelle tuple?
Le tuple in Python sono simili a Elenchi Python ma non del tutto. Le tuple sono immutabili e ordinate e consentono valori duplicati. Alcune caratteristiche delle tuple in Python.
- Possiamo trovare elementi in una tupla poiché la ricerca di qualsiasi elemento non apporta modifiche alla tupla.
- Non è possibile aggiungere elementi a una tupla una volta creata.
- Le tuple non possono essere aggiunte o estese.
- Non possiamo rimuovere elementi da una tupla una volta creata.
Vediamolo con un esempio.
Python3
mytuple> => (> 1> ,> 2> ,> 3> ,> 4> ,> 5> )> # tuples are indexed> print> (mytuple[> 1> ])> print> (mytuple[> 4> ])> # tuples contain duplicate elements> mytuple> => (> 1> ,> 2> ,> 3> ,> 4> ,> 2> ,> 3> )> print> (mytuple)> # adding an element> mytuple[> 1> ]> => 100> print> (mytuple)> |
>
>
Produzione:
Le tuple Python sono ordinate e possiamo accedere ai loro elementi utilizzando i loro valori di indice. Sono anche immutabili, ovvero non possiamo aggiungere, rimuovere e modificare gli elementi una volta dichiarati nella tupla, quindi quando abbiamo provato ad aggiungere un elemento all'indice 1, ha generato l'errore.
2 5 (1, 2, 3, 4, 2, 3) Traceback (most recent call last): File 'e0eaddff843a8695575daec34506f126.py', line 11, in tuple1[1] = 100 TypeError: 'tuple' object does not support item assignment>
Accesso ai valori nelle tuple Python
Le tuple in Python forniscono due modi attraverso i quali possiamo accedere agli elementi di una tupla.
- Utilizzando un indice positivo
- Utilizzando un indice negativo
Tupla di accesso Python utilizzando un indice positivo
Usando le parentesi quadre possiamo ottenere i valori dalle tuple in Python.
Python3
var> => (> 'Geeks'> ,> 'for'> ,> 'Geeks'> )> print> (> 'Value in Var[0] = '> , var[> 0> ])> print> (> 'Value in Var[1] = '> , var[> 1> ])> print> (> 'Value in Var[2] = '> , var[> 2> ])> |
>
>
Produzione:
Value in Var[0] = Geeks Value in Var[1] = for Value in Var[2] = Geeks>
Accedi alla tupla utilizzando l'indice negativo
Nei metodi precedenti, utilizziamo l'indice positivo per accedere al valore in Python, mentre qui utilizzeremo l'indice negativo all'interno di [].
Python3
var> => (> 1> ,> 2> ,> 3> )> print> (> 'Value in Var[-1] = '> , var[> -> 1> ])> print> (> 'Value in Var[-2] = '> , var[> -> 2> ])> print> (> 'Value in Var[-3] = '> , var[> -> 3> ])> |
>
>
Produzione:
Value in Var[-1] = 3 Value in Var[-2] = 2 Value in Var[-3] = 1>
Diverse operazioni relative alle tuple
Di seguito sono riportate le diverse operazioni relative alle tuple in Python:
- Concatenazione
- Nidificazione
- Ripetizione
- Affettare
- Eliminazione
- Trovare la lunghezza
- Tipi di dati multipli con tuple
- Conversione di liste in tuple
- Tuple in un ciclo
Concatenazione di tuple Python
A Concatenazione di tuple Python, utilizzeremo gli operatori più (+).
Python3
# Code for concatenating 2 tuples> tuple1> => (> 0> ,> 1> ,> 2> ,> 3> )> tuple2> => (> 'python'> ,> 'geek'> )> # Concatenating above two> print> (tuple1> +> tuple2)> |
mappa in Java
>
>
Produzione:
(0, 1, 2, 3, 'python', 'geek')>
Annidamento di tuple Python
Una tupla annidata in Python significa una tupla all'interno di un'altra tupla.
Python3
# Code for creating nested tuples> tuple1> => (> 0> ,> 1> ,> 2> ,> 3> )> tuple2> => (> 'python'> ,> 'geek'> )> tuple3> => (tuple1, tuple2)> print> (tuple3)> |
>
>
Produzione :
((0, 1, 2, 3), ('python', 'geek'))>
Tuple Python di ripetizione
Possiamo creare una tupla di più elementi uguali da un singolo elemento in quella tupla.
Python3
# Code to create a tuple with repetition> tuple3> => (> 'python'> ,)> *> 3> print> (tuple3)> |
>
>
Produzione:
('python', 'python', 'python')>
Prova quanto sopra senza virgola e controlla. Otterrai tuple3 come stringa 'pythonpythonpython'.
Affettare le tuple in Python
Affettare una tupla Python significa dividere una tupla in piccole tuple utilizzando il metodo di indicizzazione.
Python3
# code to test slicing> tuple1> => (> 0> ,> 1> ,> 2> ,> 3> )> print> (tuple1[> 1> :])> print> (tuple1[::> -> 1> ])> print> (tuple1[> 2> :> 4> ])> |
>
>
Produzione:
In questo esempio, abbiamo suddiviso la tupla dall'indice 1 all'ultimo elemento. Nella seconda istruzione print, abbiamo stampato la tupla utilizzando l'indicizzazione inversa. E nella terza istruzione print abbiamo stampato gli elementi dall'indice 2 al 4.
(1, 2, 3) (3, 2, 1, 0) (2, 3)>
Nota: Nell'affettamento Python, l'indice finale fornito non è incluso.
Eliminazione di una tupla in Python
In questo esempio, stiamo cancellando una tupla usando ' del' parola chiave . L'output sarà sotto forma di errore perché dopo aver eliminato la tupla, restituirà un NameError.
Nota: Non è possibile rimuovere singoli elementi della tupla, ma possiamo eliminare l'intera tupla utilizzando la parola chiave Del.
Python3
# Code for deleting a tuple> tuple3> => (> 0> ,> 1> )> del> tuple3> print> (tuple3)> |
>
>
Produzione:
Traceback (most recent call last): File 'd92694727db1dc9118a5250bf04dafbd.py', line 6, in print(tuple3) NameError: name 'tuple3' is not defined>
Trovare la lunghezza di una tupla Python
Per trovare la lunghezza di una tupla, possiamo usare la funzione len() di Python e passare la tupla come parametro.
Python3
# Code for printing the length of a tuple> tuple2> => (> 'python'> ,> 'geek'> )> print> (> len> (tuple2))> |
>
>
Produzione:
2>
Tipi di dati multipli con tupla
Le tuple in Python sono di natura eterogenea. Ciò significa che le tuple supportano elementi con più tipi di dati.
Python3
# tuple with different datatypes> tuple_obj> => (> 'immutable'> ,> True> ,> 23> )> print> (tuple_obj)> |
>
>
Produzione :
('immutable', True, 23)>
Conversione di una lista in una tupla
Possiamo convertire a elenco in Python in una tupla utilizzando il costruttore tuple() e passando la lista come parametri.
Python3
css per il grassetto
# Code for converting a list and a string into a tuple> list1> => [> 0> ,> 1> ,> 2> ]> print> (> tuple> (list1))> # string 'python'> print> (> tuple> (> 'python'> ))> |
>
>
Produzione:
Le tuple accettano un singolo parametro che può essere una lista, una stringa, un set o anche un dizionario (solo le chiavi vengono prese come elementi) e lo convertono in una tupla.
(0, 1, 2) ('p', 'y', 't', 'h', 'o', 'n')>
Tuple in un ciclo
Possiamo anche creare una tupla con un singolo elemento utilizzando loop .
Python3
# python code for creating tuples in a loop> tup> => (> 'geek'> ,)> # Number of time loop runs> n> => 5> for> i> in> range> (> int> (n)):> > tup> => (tup,)> > print> (tup)> |
>
>
Produzione:
(('geek',),) ((('geek',),),) (((('geek',),),),) ((((('geek',),),),),) (((((('geek',),),),),),)>