Saltar a contenido

Tuplas

¿Que es una tupla?

Imaginemos la siguiente lista:

>>> dias = [
...     "lunes",
...     "martes",
...     "miércoles",
...     "jueves",
...     "viernes",
...     "sábado",
...     "domingo"
...     ]

>>> dias[0]
    'lunes'

Toda lista incluye un mecanismo interno complejo, con el propósito de poder realizar operaciones de modificación de la lista, añadir elementos, etc. Pero... ¿vamos a cambiar los días de la semana? Algunas listas han de ser inmutables por naturaleza.

Las tuplas son colecciones de datos más simples y eficientes. Al igual que las listas, admiten elementos de cualquier tipo, incluso la posibilidad de mezclar tipos. Pero una vez creadas, no es posible modificarlas, a menos que creemos una nueva tupla (como haríamos con las cadenas de texto, que también son inmutables).

¿Como se crea una tupla? Delimitándola entre paréntesis, en lugar de corchetes:

>>> dias = (
...     "lunes",
...     "martes",
...     "miércoles",
...     "jueves",
...     "viernes",
...     "sábado",
...     "domingo"
...     )

Operaciones con tuplas

Una vez creada una tupla, podemos hacer muchas de las operaciones que realizamos con listas:

  • podemos obtener un elemento mediante índices que, al igual que sucede con las listas, se escriben entre corchetes. Si usáramos paréntesis, estaríamos llamando a una función del mismo nombre (y obtendríamos un error al no existir esa función).

    >>> dias[0]
        'lunes'
    
  • podemos obtener una nueva tupla mediante slicing:

    >>> fin_de_semana = dias[5:]
    >>> fin_de_semana
        ('sábado', 'domingo')
    
  • concatenar dos tuplas para formar una nueva:

>>> dias_laborables = dias[:-2]
>>> dias_laborables
    ('lunes', 'martes', 'miércoles', 'jueves', 'viernes')
>>> dias_laborables + fin_de_semana
    ('lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo')

Omitir paréntesis

En situaciones donde no hay ambigüedades, se puede prescindir de los paréntesis:

dias = 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo'

Pero obtendríamos un error si escribimos:

dias = "lunes",
       "martes",
       "miércoles",
       "jueves",
       "viernes",
       "sábado",
       "domingo"

... porque en la primera línea estamos creando un string, y la coma sobra. Las líneas sucesivas no tienen sentido para el intérprete. En este caso, se necesitan los paréntesis para delimitar todo el conjunto.

Tuplas formadas por un elemento

Lo siguiente pretende ser una tupla de un elemento:

saludos = ("Hola")

pero todo lo que conseguimos es una cadena de texto entre paréntesis. Los paréntesis se considerarían como parte de una expresión.

Cuando una tupla solo tiene un elemento, este debe ir acompañado de una coma:

saludos = ("Hola", )

o bien:

saludos = "Hola",