Hace unos días, estaba trabajando en un proyecto de Python y tenía que hacer uso de listas. Creé una lista vacía y la llamécost_array
. Un amigo lo vio y me hizo la siguiente pregunta:
«¿Cuál es la diferencia entre una Lista y un Array?»
Me puse a reflexionar porque hasta ahora siempre había considerado los datos de tipo como listas en Python y arrays en Javascript. Aparentemente, un Array es un tipo de datos en Python también, lo que significa que tenemos el tipo
array
y el tipo list
(siendo más popular el tipo lista). La mayoría de las personas llegan a utilizar arrays cuando se aventuran en la Ciencia de Datos y hacen uso de bibliotecas como numpy
. Los arrays son el verdadero caballo de batalla de las estructuras de datos para aplicaciones científicas y de ingeniería. El tipo de array más popular utilizado en Python es el array numpy
.
- Ambos se utilizan para almacenar datos
- Ambos son mutables
- Ambos pueden ser indexados e iterados
- Ambos pueden ser cortados
Diferencias
La principal diferencia entre estos dos tipos de datos es la operación que puedes realizar sobre ellos. Los arrays están especialmente optimizados para realizar cálculos aritméticos, por lo que si vas a realizar operaciones similares deberías considerar el uso de un array en lugar de una lista.
También las listas son contenedores de elementos que tienen diferentes tipos de datos, pero los arrays se utilizan como contenedores de elementos del mismo tipo de datos.
El ejemplo siguiente es el resultado de dividir un array por un determinado número y hacer lo mismo con una lista. Cuando intentamos la misma operación (ejemplo: división) en una lista, obtenemos un TypeError porque las listas construidas en python no soportan el protocolo `__div__`. Se necesita un paso extra para realizar este cálculo en una lista porque entonces tendrías que hacer un bucle sobre cada elemento uno tras otro y guardarlo en otra lista.
¡Estrés!