W3docs

Unir Tuplas en Python

Aprende todas las formas de unir tuplas en Python: el operador +, el operador * de repetición y el constructor tuple() con ejemplos.

Las tuplas de Python son secuencias inmutables — una vez creadas no puedes agregar, eliminar ni modificar sus elementos. Unir tuplas significa crear una nueva tupla que combina el contenido de dos o más tuplas existentes. Debido a que las tuplas son inmutables, cada operación de unión devuelve una tupla nueva en lugar de modificar las originales.

Esta página cubre las principales formas de unir tuplas en Python:

  • Operador + — concatenar dos o más tuplas
  • Operador * — repetir una tupla un número fijo de veces
  • Constructor tuple() — construir una tupla a partir de cualquier iterable, útil al combinar secuencias que no son tuplas

Unir Tuplas con el Operador +

El operador + concatena dos tuplas en una sola tupla nueva. Los elementos del operando izquierdo van primero, seguidos de los del operando derecho. Ninguna de las tuplas originales cambia.

python— editable, runs on the server

Salida:

(1, 2, 3, 4, 5, 6)

Unir Tres o Más Tuplas

Encadena el operador + para combinar cualquier número de tuplas en una sola expresión:

python— editable, runs on the server

Salida:

(1, 2, 3, 4, 5, 6, 7, 8, 9)

Unir Tuplas con Tipos Mixtos

Las tuplas pueden contener valores de distintos tipos, y + funciona de la misma manera sin importar eso:

t1 = (1, "hello", True)
t2 = (3.14, None)
result = t1 + t2
print(result)

Salida:

(1, 'hello', True, 3.14, None)

Precaución: Ambos Operandos Deben Ser Tuplas

No puedes usar + para concatenar una tupla con una lista u otro tipo — Python lanza un TypeError. Convierte primero la otra secuencia a tupla:

my_tuple = (1, 2, 3)
my_list = [4, 5, 6]

# This raises TypeError:
# result = my_tuple + my_list

# Correct — convert the list to a tuple first:
result = my_tuple + tuple(my_list)
print(result)

Salida:

(1, 2, 3, 4, 5, 6)

Precaución: Sintaxis de Tupla de un Solo Elemento

Una tupla con un elemento requiere una coma al final. Sin ella, Python interpreta los paréntesis como agrupación, no como una tupla literal:

not_a_tuple = (42)    # int, not tuple
singleton   = (42,)   # tuple with one element

result = singleton + (1, 2)
print(result)

Salida:

(42, 1, 2)

Repetir una Tupla con el Operador *

El operador * repite una tupla un número determinado de veces y devuelve una nueva tupla. Esto es útil cuando necesitas una secuencia pre-llenada con un patrón repetido.

t = ("a", "b")
result = t * 3
print(result)

Salida:

('a', 'b', 'a', 'b', 'a', 'b')

El entero puede aparecer en cualquiera de los lados: t * 3 y 3 * t producen el mismo resultado. Multiplicar por 0 o un número negativo devuelve una tupla vacía.

t = (1, 2, 3)
print(t * 0)   # ()
print(t * 1)   # (1, 2, 3)

Salida:

()
(1, 2, 3)

Construir una Tupla Combinada con tuple()

El constructor integrado tuple() convierte cualquier iterable en una tupla. Puedes usarlo para construir una tupla combinada a partir de una lista ensamblada mediante adiciones sucesivas, lo cual es más eficiente que llamadas repetidas a + dentro de un bucle.

parts = [1, 2, 3]
parts += [4, 5, 6]        # build up a list first
combined = tuple(parts)   # convert to tuple once
print(combined)

Salida:

(1, 2, 3, 4, 5, 6)

Por Qué Evitar + Dentro de un Bucle

Cada llamada a + crea un nuevo objeto tupla y copia todos los elementos. Al unir muchas tuplas, esto implica O(n²) copias. El patrón eficiente es reunir todos los elementos en una lista y convertirla una sola vez al final:

tuples = [(1, 2), (3, 4), (5, 6), (7, 8)]

# Inefficient — creates a new tuple on each iteration
result = ()
for t in tuples:
    result = result + t   # many intermediate copies

# Efficient — build a list, convert once
result = tuple(item for t in tuples for item in t)
print(result)

Salida:

(1, 2, 3, 4, 5, 6, 7, 8)

Unir vs. Anidar Tuplas

Es fácil anidar tuplas accidentalmente en lugar de unirlas. El operador + aplana un nivel; envolver tuplas en una nueva tupla crea una estructura anidada.

t1 = (1, 2)
t2 = (3, 4)

joined = t1 + t2      # flat: all four elements at the same level
nested = (t1, t2)     # two-element tuple of tuples

print("joined:", joined)
print("nested:", nested)

Salida:

joined: (1, 2, 3, 4)
nested: ((1, 2), (3, 4))

Usa + cuando quieras un resultado plano. Usa (t1, t2) cuando intencionalmente quieras una tupla de tuplas (por ejemplo, una tabla de filas).

Elegir el Enfoque Correcto

ObjetivoEnfoque
Combinar dos o tres tuplas en unatuple1 + tuple2
Combinar muchas tuplas de forma eficienteConstruir una lista y luego tuple(...)
Repetir un patrón N vecesmy_tuple * N
Convertir una lista en tuplatuple(my_list)

Temas Relacionados

Práctica

Práctica
Which operator concatenates two tuples into a new tuple in Python?
Which operator concatenates two tuples into a new tuple in Python?
Was this page helpful?