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. |