A la hora de comenzar con Python es habitual utilizar las listas y las tuplas de forma prácticamente indiferente. Aparentemente ambas son dos estructuras de datos que sirven para lo mismo. Pero esto no es así, existen importantes diferencias entre listas y tuplas en Python que es necesario conocer.
La principal diferencia entre listas y tuplas en Python
La principal diferencia entre las listas y las tuplas de Python, y el motivo por el que muchos usuarios solamente utilizar listas, es que las listas son mutables mientras que las tuplas no lo son. ¿Pero qué significa ser mutable o no? Básicamente un objeto mutable se puede modificar una vez creado mientras que uno que no lo es no. Así el contenido de las listas se puede modificar durante la ejecución del programa mientras para las tuplas no es posible alterar su contenido.
Consecuencias de ser o no ser mutables
El hecho de ser mutable tiene además otras consecuencias. Para ser mutables las listas se almacena en dos bloques de memoria, mientras que las tuplas solo necesitan uno. Lo que provoca que las tuplas ocupen menos memoria que las listas. Además, por el hecho de no ser mutables, es más rápido manejar tuplas que listas.
Ejemplos de listas y tuplas
Para crear una lista solamente se tiene que enumerar los valores separados por comas entre corchetes. Así se puede crear una simplemente con la siguiente línea
>>> lista = ["uno", "dos", "tres"]
Ahora, dado que las lista es mutable se puede modificar el contenido de este asignado el nuevo valor en cualquiera de los registros existentes. Así se puede cambiar el primer registro mediante la expresión
>>> lista[0] = "cuatro"
Lo que se puede comprobar accediendo al contenido de la lista
>>> lista ['cuatro', 'dos', 'tres']
Por otro lado, las tuplas se crean utilizando paréntesis en lugar de corchetes. Esto es, para escribir una tupla se puede hacer
>>> tupla = ("uno", "dos", "tres")
En el caso de que se intente modificar el contenido de una tupla Python generará un error como se puede ver simplemente probando.
>>> tupla[0] = "cuatro" Traceback (most recent call last): File "", line 1, in TypeError: 'tuple' object does not support item assignment
Conclusiones
En esta entrada se han visto las principales diferencias entre listas y tuplas en Python, básicamente en el hecho de que las listas son mutables mientras que las tuplas no lo son. Así se puede comprobar en qué casos es mejor una u otra estructura de datos. En el caso de que no sea necesario modificar el contenido de los datos la mejor opción es la tupla, ya que es ocupa menos memoria y es más rápida. En el resto de los casos la mejor opción será utilizar listas.
Imágenes: Pixabay (Mediamodifier)
Deja una respuesta