Python - Tuplas

Una tupla es una secuencia de objetos Python inmutables. Las tuplas son secuencias, como listas. Las diferencias entre las tuplas y las listas son que las tuplas no se pueden cambiar, a diferencia de que las listas y las tuplas usan paréntesis, mientras que las listas usan corchetes.

Crear una tupla es tan simple como poner diferentes valores separados por comas. Opcionalmente, también puede poner estos valores separados por comas entre paréntesis. Por ejemplo

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

La tupla vacía se escribe como dos paréntesis que no contienen nada:

tup1 = ();

Para escribir una tupla que contenga un solo valor, debe incluir una coma, aunque solo haya un valor:

tup1 = (50,);

Al igual que los índices de cadena, los índices de tupla comienzan en 0 y se pueden cortar, concatenar, etc.

Acceder a valores en tuplas

Para acceder a los valores en tupla, use los corchetes para cortar junto con el índice o índices para obtener el valor disponible en ese índice. Por ejemplo

#!/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];

Cuando se ejecuta el código anterior, produce el siguiente resultado:

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

Actualizar tuplas

Las tuplas son inmutables, lo que significa que no puede actualizar ni cambiar los valores de los elementos de la tupla. Puede tomar partes de tuplas existentes para crear nuevas tuplas, como lo demuestra el siguiente ejemplo:

#!/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;

Cuando se ejecuta el código anterior, produce el siguiente resultado:

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

Eliminar elementos de tupla

No es posible eliminar elementos de tupla individuales. Por supuesto, no hay nada de malo en armar otra tupla con los elementos no deseados descartados.

Para eliminar explícitamente una tupla completa, simplemente use el deldeclaración. Por ejemplo

#!/usr/bin/python

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

Esto produce el siguiente resultado. Tenga en cuenta que se generó una excepción, esto se debe a que despuésdel tup la tupla ya no existe -

('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

Operaciones básicas de tuplas

Las tuplas responden a los operadores + y * de forma muy parecida a las cadenas; aquí también se refieren a la concatenación y la repetición, excepto que el resultado es una nueva tupla, no una cadena.

De hecho, las tuplas responden a todas las operaciones de secuencia generales que usamos en cadenas en el capítulo anterior:

Expresión de Python Resultados Descripción
len ((1, 2, 3)) 3 Longitud
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) Concatenación
('¡Hola!',) * 4 ('¡Hola!', '¡Hola!', '¡Hola!', '¡Hola!') Repetición
3 pulgadas (1, 2, 3) Cierto Afiliación
para x en (1, 2, 3): imprimir x, 1 2 3 Iteración