Il y a quelques jours, je travaillais sur un projet Python et je devais faire usage de listes. J’ai créé une liste vide et l’ai nomméecost_array
. Un ami a vu cela et a posé la question :
« Quelle est la différence entre une liste et un tableau ? »
J’ai commencé à réfléchir car jusqu’à présent j’ai toujours considéré les données de type comme des listes en Python et des tableaux en Javascript. Apparemment, un tableau est également un type de données en Python, ce qui signifie que nous avons le type
array
et le type list
(le type liste étant plus populaire). La plupart des gens ont l’occasion d’utiliser des tableaux lorsqu’ils s’aventurent dans la science des données et utilisent des bibliothèques telles que numpy
. Les tableaux sont le véritable cheval de bataille des structures de données pour les applications scientifiques et d’ingénierie. Le type de tableau le plus populaire utilisé dans Python est le tableau numpy
.
- Les deux sont utilisés pour stocker des données
- Les deux sont mutables
- Les deux peuvent être indexés et itérés
- Les deux peuvent être tranchés
Différences
La principale différence entre ces deux types de données est l’opération que vous pouvez effectuer sur eux. Les tableaux sont spécialement optimisés pour les calculs arithmétiques, donc si vous avez l’intention d’effectuer des opérations similaires, vous devriez envisager d’utiliser un tableau plutôt qu’une liste.
De plus, les listes sont des conteneurs pour des éléments ayant des types de données différents, mais les tableaux sont utilisés comme conteneurs pour des éléments du même type de données.
L’exemple ci-dessous est le résultat de la division d’un tableau par un certain nombre et de faire la même chose pour une liste. Lorsque nous essayons la même opération (exemple : division) sur une liste, nous obtenons une TypeError car les listes python construites ne supportent pas le protocole `__div__`. Il faut une étape supplémentaire pour effectuer ce calcul sur une liste car il faudrait alors boucler sur chaque élément l’un après l’autre et enregistrer dans une autre liste.
Stress!!