Ir al contenido principal

Tutorial de tuplas en Python

Aprende sobre las tuplas en Python: qué son, cómo crearlas, cuándo usarlas, qué operaciones puedes realizar y qué funciones conviene conocer.
Actualizado 17 sept 2026  · 10 min leer

Explorar con IA

ChatGPTClaudePerplexity

Al igual que las listas de Python, las tuplas son otro tipo de dato estándar que te permite almacenar valores en secuencia. Son útiles cuando quieres compartir datos con alguien pero sin permitir que los modifique. Podrán usar los valores, pero cualquier cambio no se refleja en los datos originales compartidos.

En este tutorial, verás las tuplas de Python en detalle:

python tuple tutorial

No te pierdas el curso de DataCamp Data Types for Data Science, donde podrás afianzar y practicar tu conocimiento de estructuras de datos como listas, diccionarios, conjuntos y muchas más. O echa un vistazo a este tutorial sobre estructuras de datos en Python, para profundizar en las diferentes estructuras que usa Python.

Tuplas en Python

Como ya has leído, puedes usar esta estructura de datos de Python para almacenar una secuencia de elementos que es inmutable (no se puede cambiar) y está ordenada.

Las tuplas se inicializan con paréntesis () en vez de corchetes [] como las listas. Es decir, para crear una, basta con hacer lo siguiente:

cake = ('c','a','k','e')
print(type(cake))
<class 'tuple'>

Recuerda que type() es una función integrada que te permite comprobar el tipo de dato del parámetro que le pases.

Las tuplas pueden contener valores tanto homogéneos como heterogéneos. Eso sí, recuerda que una vez que declaras esos valores, no puedes cambiarlos:

mixed_type = ('C',0,0,'K','I','E')

for i in mixed_type:
    print(i,":",type(i))
C : <class 'str'>
0 : <class 'int'>
0 : <class 'int'>
K : <class 'str'>
I : <class 'str'>
E : <class 'str'>
# Intenta cambiar 0 por 'O'
mixed_type[1] = 'O'
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-16-dec29c289a95> in <module>()
----> 1 mixed_type[1] = 'O' # Trying to change 0 to 'O'


TypeError: 'tuple' object does not support item assignment

Obtienes este error porque no puedes cambiar los valores dentro de una tupla.

Aquí tienes otra forma de crear una tupla:

numbers_tuple = 1,2,3,4,5
print(type(numbers_tuple))
<class 'tuple'>

Domina tus habilidades de datos con DataCamp

Más de 10 millones de personas aprenden Python, R, SQL y otras habilidades tecnológicas con nuestros cursos prácticos elaborados por expertos del sector.

Empieza a Aprender
learner-on-couch@2x.jpg

Tuplas frente a listas

Como habrás notado, las tuplas son muy similares a las listas. De hecho, podrías decir que son listas inmutables: una vez creada una tupla no puedes borrar ni cambiar los valores de los elementos que contiene. Tampoco puedes añadir valores nuevos. Mira:

numbers_tuple = (1,2,3,4,5)
numbers_list = [1,2,3,4,5]

# Intentar añadir un número a la tupla
numbers_tuple.append(6)
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-26-e47776d745ce> in <module>()
      3 
      4 # Append a number to the tuple
----> 5 numbers_tuple.append(6)


AttributeError: 'tuple' object has no attribute 'append'

Da un error porque no puedes eliminar ni añadir elementos en una tupla, cosa que sí puedes hacer con una lista.

# Añadir números a la lista
numbers_list.append(6)
numbers_list.append(7)
numbers_list.append(8)

# Eliminar un número de la lista
numbers_list.remove(7)
print(numbers_list)
[1, 2, 3, 4, 5, 6, 8]

Pero, ¿por qué usar tuplas si son inmutables?

Porque, además de ofrecer acceso de solo lectura a los datos, son más rápidas que las listas. Fíjate en este código:

import timeit
timeit.timeit('x=(1,2,3,4,5,6,7,8,9)', number=100000)
0.0018976779974764213
timeit.timeit('x=[1,2,3,4,5,6,7,8,9]', number=100000)
0.019868606992531568

¿Qué significa exactamente inmutable en el caso de las tuplas?

Según la documentación oficial de Python, inmutable es «un objeto con un valor fijo», pero «valor» es un término algo vago; el término correcto para tuplas sería «id». «id» es la identidad de la ubicación de un objeto en memoria.

Veámoslo con más detalle:

# Tupla 'n_tuple' con una lista como uno de sus elementos.
n_tuple = (1, 1, [3,4])

# Elementos con el mismo valor tienen el mismo id.
id(n_tuple[0]) == id(n_tuple[1])
True
# Elementos con distinto valor tienen distinto id.
id(n_tuple[0]) == id(n_tuple[2])
False
id(n_tuple[0])
4297148528
id(n_tuple[2])
4359711048
n_tuple.append(5)
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-40-3cd258e024ff> in <module>()
----> 1 n_tuple.append(5)


AttributeError: 'tuple' object has no attribute 'append'

No podemos añadir elementos a una tupla, por eso aparece el error anterior. De ahí que se diga que una tupla es inmutable. Pero sí puedes hacer esto:

n_tuple[2].append(5)
n_tuple
(1, 1, [3, 4, 5])

Así, en la práctica estás mutando la tupla original. Entonces, ¿por qué se sigue considerando inmutable?

Porque el id de la lista dentro de la tupla sigue siendo el mismo aunque le hayas añadido el 5.

id(n_tuple[2])
4359711048

En resumen, por ahora quédate con esto:

Algunas tuplas (las que contienen solo objetos inmutables: strings, etc.) son inmutables y otras tuplas (las que contienen uno o más objetos mutables: listas, etc.) pueden cambiar. Aun así, esto suele ser motivo de debate entre pythonistas, y necesitarás más base para comprenderlo del todo. Este artículo profundiza en el tema. Por ahora, digamos que las tuplas son inmutables en general.

  • No puedes añadir elementos a una tupla por su propiedad de inmutabilidad. No existen los métodos append() ni extend() para tuplas,
  • Tampoco puedes eliminar elementos de una tupla. Las tuplas no tienen métodos remove() ni pop(),
  • Puedes buscar elementos en una tupla porque eso no cambia la tupla,
  • También puedes usar el operador in para comprobar si un elemento existe en la tupla.

Así que, si defines un conjunto constante de valores y solo vas a iterar sobre él, usa una tupla en lugar de una lista. Será más rápida que trabajar con listas y también más segura, ya que las tuplas protegen los datos frente a escritura.

Si quieres saber más sobre listas en Python, no dejes de leer este tutorial.

Operaciones comunes con tuplas

Python te ofrece varias formas de trabajar con tuplas. Vamos a ver algunas de las más importantes con ejemplos.

Slicing de tuplas

El primer valor de una tupla tiene índice 0. Ig igual que con las listas de Python, puedes usar los valores de índice junto con corchetes [] para acceder a elementos de una tupla:

numbers = (0,1,2,3,4,5)
numbers[0]
0

También puedes usar índices negativos con tuplas:

numbers[-1]
5

Mientras que el indexado se usa para obtener elementos individuales, el slicing te permite obtener un subconjunto de elementos. Cuando indicas un rango que quieres extraer, se llama slicing por rango. El formato general es:

[Índice de inicio (incluido):índice de fin (excluido):incremento]

Aquí incremento es un parámetro opcional; por defecto es 1.

# El elemento en el índice 4 queda excluido
numbers[1:4]
(1, 2, 3)
# Devuelve todos los elementos de la tupla
numbers[:]
(0, 1, 2, 3, 4, 5)
# Incremento = 2
numbers[::2]
(0, 2, 4)

Truco: también puedes usar un incremento negativo para invertir la tupla.

numbers[::-1]
(5, 4, 3, 2, 1, 0)

Suma de tuplas

Puedes combinar tuplas para formar una nueva. La operación de suma simplemente concatena tuplas.

x = (1,2,3,4)
y = (5,6,7,8)

# Combinar dos tuplas para formar una nueva
z = x + y 

print(z)
(1, 2, 3, 4, 5, 6, 7, 8)
y = [5,6,7,8]
z = x + y
print(z)
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-55-d352c6414a4c> in <module>()
      1 y = [5,6,7,8]
----> 2 z = x + y
      3 print(z)


TypeError: can only concatenate tuple (not "list") to tuple

Solo puedes sumar o combinar tipos de datos iguales. Por eso, combinar una tupla y una lista da error.

Multiplicación de tuplas

La multiplicación de una tupla simplemente repite su contenido.

x = (1,2,3,4)
z = x*2
print(z)
(1, 2, 3, 4, 1, 2, 3, 4)

Funciones para tuplas

A diferencia de las listas de Python, las tuplas no tienen métodos como append(), remove(), extend(), insert() o pop() debido a su carácter inmutable. Sin embargo, hay muchas funciones integradas para trabajar con tuplas:

count() y len()

count() devuelve el número de veces que aparece un elemento en una tupla.

a = [1,2,3,4,5,5]
a.count(5)
2

Con la función len() puedes obtener la longitud de la tupla:

a = (1,2,3,4,5)
print(len(a))
5

any()

Puedes usar any() para saber si algún elemento de una tupla es «verdadero». Devuelve True si es el caso; en caso contrario devuelve False.

a = (1,)
print(any(a))
True

Fíjate en la , en la declaración de la tupla a de arriba. Si no añades la coma al inicializar una tupla de un solo elemento, Python asume que has puesto paréntesis de más (inofensivo), pero el tipo de dato no es una tupla. Así que recuerda incluir la coma al declarar un único elemento en una tupla.

Volviendo a any(): en un contexto booleano, el valor del elemento es irrelevante. Una tupla vacía es falsa; cualquier tupla con al menos un elemento es verdadera.

b = ()
print(any(b))
False

Esta función puede ser útil cuando en tu programa recibes una tupla y quieres asegurarte de que tiene contenido.

tuple()

Usa tuple() para convertir otro tipo de dato en una tupla. Por ejemplo, en el siguiente fragmento conviertes una lista de Python en tupla.

a_list = [1,2,3,4,5]
b_tuple = tuple(a_list)
print(type(b_tuple))
<class 'tuple'>

min() y max()

max() devuelve el elemento más grande de la tupla y min() devuelve el más pequeño. Observa este ejemplo:

print(max(a))
print(min(a))
5
A

También puedes usarlo con tuplas que contienen strings.

# La cadena 'Apple' se convierte automáticamente en una secuencia de caracteres. 
a = ('Apple') 
print(max(a))
p

sum()

Con esta función obtienes la suma total de los elementos de una tupla. Solo puede usarse con valores numéricos.

sum(a)
28

sorted()

Para devolver los elementos en orden ascendente, usa sorted(), como en el siguiente ejemplo:

a = (6,7,4,2,1,5,3)
sorted(a)
[1, 2, 3, 4, 5, 6, 7]

Ten en cuenta que el tipo de retorno es una lista, no una tupla. La secuencia de la tupla original «a» no cambia y su tipo sigue siendo tupla.

Bonus: asignación de múltiples valores

Algo muy útil que puedes hacer con tuplas es usarlas para asignar varios valores de una vez. Mira:

a = (1,2,3)
(one,two,three) = a
print(one)
1

a es una tupla de tres elementos y (one,two,three) es una tupla de tres variables. Asignar (one,two,three) a la tupla a asigna cada uno de los valores de a a cada una de las variables, en orden: one, two y three. Es muy práctico cuando necesitas asignar una serie de valores a una secuencia almacenada en una tupla.

¡Enhorabuena!

Has llegado al final de este tutorial sobre tuplas. Por el camino has aprendido qué son las tuplas en Python, cómo inicializarlas, cuáles son las operaciones más comunes para trabajar con ellas y qué funciones conviene conocer para sacarle más partido a estas estructuras de datos de Python. Como extra, has visto que también puedes asignar varios valores a la vez con tuplas.

Temas
Python

Cursos de Python

Curso

Introducción a Python

4 h
7M
Domina los fundamentos del análisis de datos con Python en cuatro horas y descubre sus paquetes más usados.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial de Python sobre conjuntos y teoría de conjuntos

Aprende sobre los conjuntos en Python: qué son, cómo crearlos, cuándo usarlos, funciones incorporadas y su relación con las operaciones de la teoría de conjuntos.
DataCamp Team's photo

DataCamp Team

13 min

Tutorial

Funciones en Python: cómo llamar y escribir funciones

Descubre cómo escribir funciones en Python reutilizables y eficientes. Domina los parámetros, las sentencias return y temas avanzados como las funciones lambda. Organiza mejor tu código con main() y otras buenas prácticas.
Karlijn Willems's photo

Karlijn Willems

14 min

Tutorial

Tutorial y ejemplos de funciones y métodos de listas en Python

Aprende sobre las funciones y métodos de las listas de Python. ¡Sigue ahora los ejemplos de código para list() y otras funciones y métodos de Python!
Abid Ali Awan's photo

Abid Ali Awan

7 min

Tutorial

Tutorial de Estructuras de Datos en Python

Introdúcete en las estructuras de datos de Python: aprende más sobre tipos de datos y estructuras de datos primitivas y no primitivas, como cadenas, listas, pilas, etc.
Sejal Jaiswal's photo

Sejal Jaiswal

24 min

Tutorial

Tutorial de visualización de datos con Python y Tableau

Aprende a utilizar Python para ampliar las funciones de visualización de datos de Tableau.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Tutorial

Funciones lambda de Python: Guía para principiantes

Aprende sobre las funciones lambda de Python, su finalidad y cuándo utilizarlas. Incluye ejemplos prácticos y mejores prácticas para una implementación eficaz.
Mark Pedigo's photo

Mark Pedigo

10 min

Ver MásVer Más