Python - Tuplas

Una tupla es una colección de objetos ordenados e 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; también aquí se refieren a concatenación y repetición, excepto que el resultado es una nueva tupla, no una cadena.

De hecho, las tuplas responden a todas las operaciones generales de secuencia 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

Indexación, corte y matrices

Dado que las tuplas son secuencias, la indexación y el corte funcionan de la misma manera para las tuplas que para las cadenas. Suponiendo la siguiente entrada:

L = ('spam', 'Spam', 'SPAM!')

 

Expresión de Python Resultados Descripción
L [2] '¡CORREO NO DESEADO!' Las compensaciones comienzan en cero
L [-2] 'Correo no deseado' Negativo: cuenta desde la derecha
L [1:] ['Spam', 'SPAM!'] Cortar recupera secciones

Sin delimitadores adjuntos

Cualquier conjunto de varios objetos, separados por comas, escritos sin símbolos identificativos, es decir, corchetes para listas, paréntesis para tuplas, etc.

#!/usr/bin/python

print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x,y;

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

abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

Funciones de tupla integradas

Python incluye las siguientes funciones de tupla:

No Señor. Función con descripción
1 cmp (tupla1, tupla2)

Compara elementos de ambas tuplas.

2 len (tupla)

Da la longitud total de la tupla.

3 max (tupla)

Devuelve el artículo de la tupla con valor máximo.

4 min (tupla)

Devuelve el artículo de la tupla con valor mínimo.

5 tupla (seq)

Convierte una lista en tupla.