Dominando tuplas en Python: Definición, uso y diferencias con listas
Una tupla es una colección de objetos ordenada e inmutable. Las tuplas son secuencias, como las listas. Las diferencias: las tuplas no pueden cambiarse a diferencia de las listas, y usan paréntesis, mientras que las listas usan corchetes.
Crear una tupla es tan simple como poner valores separados por comas. Opcionalmente entre paréntesis. Por ejemplo:
tup1 = ('física', 'química', 1997, 2000)
tup2 = (1, 2, 3, 4, 5)
tup3 = "a", "b", "c", "d"
La tupla vacía se escribe con dos paréntesis sin nada:
tup1 = ()
Para una tupla con un solo valor, debes incluir una coma:
tup1 = (50,)
Como índices de cadena, los de tupla empiezan en 0, y pueden rebanarse, concatenarse, etc.
Acceso a valores en tuplas
Para acceder, usa corchetes para rebanado con índice. Por ejemplo:
Demo en vivo#!/usr/bin/python
tup1 = ('física', 'química', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7)
print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
Resultado:
tup1[0]: física tup2[1:5]: [2, 3, 4, 5]
Actualización de tuplas
Las tuplas son inmutables: no puedes actualizar o cambiar valores de elementos. Puedes tomar porciones de tuplas existentes para crear nuevas tuplas:
Demo en vivo#!/usr/bin/python
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
# tup1[0] = 100; # No válido para tuplas
# Crear nueva tupla:
tup3 = tup1 + tup2
print tup3
Resultado:
(12, 34.56, 'abc', 'xyz')
Eliminar elementos de tupla
Eliminar elementos individuales no es posible. Puedes crear otra tupla sin los elementos no deseados.
Para eliminar una tupla completa, usa del. Por ejemplo:
Demo en vivo#!/usr/bin/python
tup = ('física', 'química', 1997, 2000)
print tup
del tup
print "Después de eliminar tup: "
print tup
Resultado (excepción porque tup ya no existe):
('física', 'química', 1997, 2000)
Después de eliminar tup:
Traceback (most recent call last):
File "test.py", line 9, in
print tup
NameError: name 'tup' is not defined
Operaciones básicas de tuplas
Las tuplas responden a + y * como cadenas: concatenación y repetición, resultado es nueva tupla.
| Expresión Python | Resultado | 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 in (1, 2, 3) | True | Pertenencia |
| for x in (1, 2, 3): print x, | 1 2 3 | Iteración |
Indexación, rebanado y matrices
Porque las tuplas son secuencias, indexación y rebanado funcionan igual que en cadenas. Asumiendo:
L = ('spam', 'Spam', 'SPAM!')
| Expresión Python | Resultado | Descripción |
|---|---|---|
| L[2] | 'SPAM!' | Offsets comienzan en cero |
| L[-2] | 'Spam' | Negativo: cuenta desde la derecha |
| L[1:] | ['Spam', 'SPAM!'] | Rebanado obtiene secciones |
Sin delimitadores envolventes
Cualquier conjunto de múltiples objetos, separados por comas, sin símbolos identificadores (corchetes para listas, paréntesis para tuplas), por defecto son tuplas:
Demo en vivo#!/usr/bin/python print 'abc', -4.24e93, 18+6.6j, 'xyz' x, y = 1, 2 print "Valor de x, y: ", x, y
Resultado:
abc -4.24e+93 (18+6.6j) xyz Valor de x, y: 1 2
Funciones integradas de tupla
Python incluye las siguientes funciones de tupla:
| Nº | Función con descripción |
|---|---|
| 1 | cmp(tupla1, tupla2) - Compara elementos de ambas tuplas. |
| 2 | len(tupla) - Longitud total de la tupla. |
| 3 | max(tupla) - Elemento con valor máximo. |
| 4 | min(tupla) - Elemento con valor mínimo. |
| 5 | tuple(seq) - Convierte lista en tupla. |
python
- Dominando tipos de datos en Python: Guía práctica
- Dominando operadores en Python: Guía completa
- Dominando la sentencia pass en Python: Guía práctica
- Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
- Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
- Dominando Iteradores en Python: Cómo Funcionan y Cómo Crear los Tuyos
- Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
- Dominando datetime en Python: Guía Práctica de Fechas, Horas y Zonas Horarias
- Dominar time.sleep() en Python: Mejores Prácticas, Multihilo y Ejemplos Reales
- Domine las Tuplas en Python: Packing, Unpacking, Comparación, Slicing y Claves de Diccionario
- Dominando enumerate() en Python: bucles con índices para listas, tuplas, cadenas y diccionarios