Python Tuple es una colección de objetos separados por comas. En cierto modo, una tupla es similar a una lista de Python en términos de indexación, objetos anidados y repetición, pero la principal diferencia entre ambas es que la tupla de Python es inmutable, a diferencia de la lista de Python, que es mutable.
Creando tuplas de Python
Hay varias formas de crear una tupla en Pitón . Son los siguientes:
- Usando paréntesis redondos
- Con un artículo
- Constructor de tuplas
Crear tuplas usando corchetes redondos ()
Para crear una tupla usaremos operadores ().
Python3
var> => (> 'Geeks'> ,> 'for'> ,> 'Geeks'> )> print> (var)> |
>
>
Producción:
('Geeks', 'for', 'Geeks')>
Crear una tupla con un elemento
Python 3.11 nos proporciona otra forma de crear una tupla.
Python3
values :> tuple> [> int> |> str> , ...]> => (> 1> ,> 2> ,> 4> ,> 'Geek'> )> print> (values)> |
>
>
Producción:
Aquí, en el fragmento anterior, estamos considerando una variable llamada valores que contiene una tupla que consta de int o str, el '...' significa que la tupla contendrá más de un int o str.
(1, 2, 4, 'Geek')>
Nota: En caso de que estés generando una tupla con un solo elemento, asegúrate de agregar una coma después del elemento. Veamos un ejemplo de lo mismo.
Python3
mytuple> => (> 'Geeks'> ,)> print> (> type> (mytuple))> #NOT a tuple> mytuple> => (> 'Geeks'> )> print> (> type> (mytuple))> |
>
>
Producción:
>
Constructor de tuplas en Python
Para crear una tupla con un constructor de tuplas, pasaremos los elementos como sus parámetros.
Python3
tuple_constructor> => tuple> ((> 'dsa'> ,> 'developement'> ,> 'deep learning'> ))> print> (tuple_constructor)> |
>
>
Producción :
('dsa', 'developement', 'deep learning')>
¿Qué es inmutable en tuplas?
Las tuplas en Python son similares a Listas de Python pero no del todo. Las tuplas son inmutables, ordenadas y permiten valores duplicados. Algunas características de las tuplas en Python.
- Podemos encontrar elementos en una tupla ya que encontrar cualquier elemento no realiza cambios en la tupla.
- No se pueden agregar elementos a una tupla una vez creada.
- Las tuplas no se pueden agregar ni ampliar.
- No podemos eliminar elementos de una tupla una vez creada.
Veamos esto con un ejemplo.
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)> |
>
>
Producción:
Las tuplas de Python están ordenadas y podemos acceder a sus elementos utilizando sus valores de índice. También son inmutables, es decir, no podemos agregar, eliminar y cambiar los elementos una vez declarados en la tupla, por lo que cuando intentamos agregar un elemento en el índice 1, generó el error.
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>
Accediendo a valores en tuplas de Python
Las tuplas en Python proporcionan dos formas de acceder a los elementos de una tupla.
- Usando un índice positivo
- Usando un índice negativo
Python accede a tupla usando un índice positivo
Usando corchetes podemos obtener los valores de tuplas en 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> ])> |
>
>
Producción:
Value in Var[0] = Geeks Value in Var[1] = for Value in Var[2] = Geeks>
Acceda a Tuple usando un índice negativo
En los métodos anteriores, usamos el índice positivo para acceder al valor en Python, y aquí usaremos el índice negativo dentro de [].
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> ])> |
>
>
Producción:
Value in Var[-1] = 3 Value in Var[-2] = 2 Value in Var[-3] = 1>
Diferentes operaciones relacionadas con tuplas
A continuación se muestran las diferentes operaciones relacionadas con las tuplas en Python:
- Concatenación
- Anidación
- Repetición
- rebanar
- Eliminando
- Encontrar la longitud
- Múltiples tipos de datos con tuplas
- Conversión de listas a tuplas
- Tuplas en un bucle
Concatenación de tuplas de Python
A Concatenación de Python Tuplas, usaremos operadores más (+).
Python3
# Code for concatenating 2 tuples> tuple1> => (> 0> ,> 1> ,> 2> ,> 3> )> tuple2> => (> 'python'> ,> 'geek'> )> # Concatenating above two> print> (tuple1> +> tuple2)> |
>
>
Producción:
(0, 1, 2, 3, 'python', 'geek')>
Anidamiento de tuplas de Python
Una tupla anidada en Python significa una tupla dentro de otra tupla.
Python3
# Code for creating nested tuples> tuple1> => (> 0> ,> 1> ,> 2> ,> 3> )> tuple2> => (> 'python'> ,> 'geek'> )> tuple3> => (tuple1, tuple2)> print> (tuple3)> |
>
>
Producción :
((0, 1, 2, 3), ('python', 'geek'))>
Tuplas de repetición de Python
Podemos crear una tupla de varios elementos iguales a partir de un solo elemento en esa tupla.
Python3
# Code to create a tuple with repetition> tuple3> => (> 'python'> ,)> *> 3> print> (tuple3)> |
>
>
Producción:
('python', 'python', 'python')>
Pruebe lo anterior sin coma y verifique. Obtendrá tuple3 como una cadena 'pythonpythonpython'.
Cortar tuplas en Python
Dividir una tupla de Python significa dividir una tupla en tuplas pequeñas utilizando el método de indexación.
Python3
# code to test slicing> tuple1> => (> 0> ,> 1> ,> 2> ,> 3> )> print> (tuple1[> 1> :])> print> (tuple1[::> -> 1> ])> print> (tuple1[> 2> :> 4> ])> |
>
>
Producción:
En este ejemplo, dividimos la tupla desde el índice 1 hasta el último elemento. En la segunda declaración de impresión, imprimimos la tupla usando indexación inversa. Y en la tercera declaración impresa, imprimimos los elementos del índice 2 al 4.
(1, 2, 3) (3, 2, 1, 0) (2, 3)>
Nota: En el corte de Python, el índice final proporcionado no está incluido.
Eliminar una tupla en Python
En este ejemplo, estamos eliminando una tupla usando ' del’ keyword . La salida tendrá forma de error porque después de eliminar la tupla, dará un NameError.
Nota: No es posible eliminar elementos de tupla individuales, pero podemos eliminar la tupla completa usando la palabra clave Del.
Python3
# Code for deleting a tuple> tuple3> => (> 0> ,> 1> )> del> tuple3> print> (tuple3)> |
>
>
Producción:
Traceback (most recent call last): File 'd92694727db1dc9118a5250bf04dafbd.py', line 6, in print(tuple3) NameError: name 'tuple3' is not defined>
Encontrar la longitud de una tupla de Python
Para encontrar la longitud de una tupla, podemos usar la función len() de Python y pasar la tupla como parámetro.
Python3
# Code for printing the length of a tuple> tuple2> => (> 'python'> ,> 'geek'> )> print> (> len> (tuple2))> |
>
>
Producción:
2>
Múltiples tipos de datos con tupla
Las tuplas en Python son de naturaleza heterogénea. Esto significa que las tuplas admiten elementos con múltiples tipos de datos.
Python3
# tuple with different datatypes> tuple_obj> => (> 'immutable'> ,> True> ,> 23> )> print> (tuple_obj)> |
>
>
Producción :
('immutable', True, 23)>
Convertir una lista en una tupla
Podemos convertir un lista en Python a una tupla usando el constructor tuple() y pasando la lista como sus parámetros.
Python3
# Code for converting a list and a string into a tuple> list1> => [> 0> ,> 1> ,> 2> ]> print> (> tuple> (list1))> # string 'python'> print> (> tuple> (> 'python'> ))> |
¿Qué hace Ravel en Python?
>
>
Producción:
Las tuplas toman un único parámetro que puede ser una lista, una cadena, un conjunto o incluso un diccionario (solo se toman claves como elementos) y los convierten en una tupla.
(0, 1, 2) ('p', 'y', 't', 'h', 'o', 'n')>
Tuplas en un bucle
También podemos crear una tupla con un solo elemento usando bucles .
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)> |
>
>
Producción:
(('geek',),) ((('geek',),),) (((('geek',),),),) ((((('geek',),),),),) (((((('geek',),),),),),)>