En mis anteriores artículos sobre iniciación a Python hablé acerca de dos conceptos muy importantes que debes conocer con el fin de avanzar en tu viaje de aprendizaje sobre el lenguaje de programación Python, las listas y los diccionarios.
Este tutorial es otra entrega en mi afán de que conozcáis este magnífico lenguaje, y en esta ocasión os hablaré de otro concepto interesante, las tuplas. De esta manera, habrás apremdido a manejar estos tres tipos de datos y estarás listo para profundizar en el lenguaje Python.
Por eso, vamos a continuar pasando directamente al interesantísimo tema de las tuplas.
¿Qué son las tuplas?
Si entendiste el concepto de listas, las tuplas te van a ser pan comido, ya que son muy similares salvo por dos diferencias muy importantes:
- Las tuplas son inmutables. Una vez se crea una tupla, no se puede cambiar ni su contenido ni su tamaño, a menos que hagas una copia de la tupla.
- Se escriben entre paréntesis () en lugar de entre corchetes [].
Por lo tanto, como habrás podido adivinar, las tuplas consisten en un conjunto de objetos ordenados que pueden ser de cualquier tipo (es decir, strings, listas, diccionarios, tuplas, etc.), y se puede acceder a cada elemento mediante un índice, al contrario que los elementos de un diccionarios, a los cuales se accedía mediante una clave. Es importante señalar que las tuplas almacenan referencias de los objetos que contienen.
Antes de ver algunas operaciones con tuplas, vamos a ver como se definiría una tupla sencilla:
tup = (1)
Esto es una tupla simple que solo contiene un elemento, un valor entero. La salida de esta tupla será 1.
Vamos a ver otro ejemplo de una tupla con 3 elementos, cada uno de un tipo distinto. La declaración de dicha tupla sería tal que así:
tup = (31,'prog',4.0)
La salida de la sentencia anterior sería:
(31, 'prog', 4.0)
También puedes definir la tupla anterior sin usar los paréntesis, como puedes ver a continuación:
tup = 31,'prog',4.0
Son muy flexibles, ¿verdad?
Operaciones con tuplas
Ahora vamos a ver unas cuantas operaciones haciendo uso de las tuplas.
Concatenación
La concatenación es la combinación de tuplas. Digamos que tenemos las siguientes tuplas:
tuple1 = (1,2,3,4,5) tuple2 = (6,7,8,9,10)
Si queremos concatenar la tuple1 con la tuple2, simplemente debemos escribir:
tup = tuple1 + tuple2
Fíjate en que he usado el operador + para realizar la concatenación. Esto derivará en la siguiente salida:
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
Repetición
La repetición de tuplas se puede llevar a cabo mediante el uso del operador *. Si quieres repetir el contenido de la tupla tres veces, simplemente haz lo siguiente:
tuple1 * 3
El resultado de esta sentencia será:
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
Comprobar elementos
Para comprobar si un elemento existe en la tupla, simplemente tenemos que utilizar la palabra clave in de este modo:
7 in tuple1
Esto devolverá un false como una casa, ya que el valor 7 no se encuentra dentro de tuple1.
Buscar
Si queremos saber en qué índice está localizado un valor concreto, podemos hacerlo. Solo hay que usar index y nos devolverá el índice donde se encuentra. Por ejemplo, si queremos encontrar la ubicación del elemento 5 en la tuple1, haremos lo siguiente:
tuple1.index(5)
Este caso, nos devolverá el valor 4, que es la localización del elemento 5.
Contador
Una acción que se suele repetir mucho cuando se trabaja con tuplas es la de contar el número de veces que un elemento existe en la tupla. Digamos que tenemos la siguiente tupla:
tuple3 = (65,67,5,67,34,76,67,231,98,67)
Si queremos saber cuántas veces existe el elemento 67 en la tuple3, haremos lo siguiente:
tuple3.count(67)
El resultado de esta sentencia debería ser 4. Las cuatro veces que se repite el elemento 67.
Indexación
La indexación es el proceso de acceder al elemento de una tupla mediante un índice. Si queremos acceder al quinto índice de la tuple3, haremos lo siguiente:
tuple3[4]
Esto nos devolverá 34.
Un índice también puede ser negativo, si el recuento lo iniciamos desde la derecha de la tupla. Por lo tanto, el resultado de tuples3[-6] será 34. ¿Qué pasaría si hacemos referencia a un índice fuera de rango? Es decir, ¿qué pasa si declaramos tuples3[-11]? Esto es lo que pasaría en ese caso:
Traceback (most recent call last):
File "tuple.py", line 2, in <module>
print tuple3[-11]
IndexError: tuple index out of range
Recuerda que los índices negativos empiezan desde -1. Por lo tanto, si escribes el índice -0, es lo mismo que indicar 0. Es por eso que, tuples3[-0], devolverá 65.
Fuente: Abder-Rahman Ali