Aujourd’hui, nous allons parler des data structures. Le problème avec les variables est qu’on ne peut y stocker qu'une seule valeur.
À travers cet article, allons voir ensemble comment stocker plus qu’une valeur dans une seule variable. C’est en soi l’une des idées les plus puissantes de la programmation, et elle introduit un certain nombre d’autres concepts centraux tels que les boucles.
À la fin de cet article, vous serez en mesure de commencer à écrire des programmes intéressants, et vous pourrez être plus confiant quant à votre capacité à développer une compétence globale en tant que Data Scientist.
Qu’est ce qu’une Liste ?
Une liste est tout simplement une collection d’éléments stockée dans une variable. Cette liste peut contenir ainsi tous data types, y compris des integers, floats, strings, des listes ou même des tuples. Du point de vue de la construction d’une liste, cette dernière est délimitée par des crochets (square brackets).
Qu’est ce qu’un Tuple ?
De longueur fixée (fixed length), un tuple permet de stocker une séquences d’éléments, tout comme une liste. Ces éléments, appelés les items du tuple ou tuple objects, sont délimités par des parenthèses et séparés par des virgules.
Les similarités entre une Liste et un Tuple
Ces deux data structures permettent de stocker des données hétérogènes, c’est-à-dire tous types de données Python. On peut ainsi, itérer sur les valeurs stockées vu que les listes aussi bien que les tuples sont séquentielles.
En outre, les éléments contenus peuvent être accédés en utilisant un indice, en mettant ce dernier entre square brackets (crochets).
Listes et Tuples, la différence clé : Mutabilité
Avant toute chose, définissons ce que c’est un objet mutable. Si un objet Python peut changer sa valeur après sa création, il est dit mutable. Il est dit immuable dans le cas contraire.
Contrairement aux tuples, les listes, caractérisées par une taille variable (variable size), et définies avec des brackets, sont mutables. Ceci signifie qu’on peut changer les éléments d’une liste une fois créée. Dans le cas d’un tuple, sa taille reste fixée (fixed size) et ses éléments inchangeables. Notez bien qu’il est tout à fait possible de stocker un objet mutable dans un objet immutable. En effet, un tuple peut très bien contenir un tuple object sous forme d’une liste. Cependant, chaque tuple object garde le même emplacement en mémoire malgré sa modification.
Choisir une liste ou un tuple ?
- Si vous définissez un ensemble constant de valeurs et que vous n’avez pas l’intention de faire autre chose que de les parcourir, utilisez un tuple plutôt qu’une liste. Dans le cas où vous comptez modifier vos valeurs plus tard, en rajouter ou en supprimer, les listes seront un bon choix.
- Si vous comptez mettre vos valeurs stockées comme clés (Keys) d’un dictionnaire python, vous ne pourrez pas utiliser les valeurs d’une liste. En effet, seules les valeurs immuables peuvent être hachées. Par conséquent, nous ne pouvons définir que des valeurs immuables telles que les tuples comme clés.
- Si vous voulez allouer un minimum d’espace mémoire pour vos données, les tuples s’avèrent un bon choix. En effet, dans le cas d’une liste, Python doit allouer plus de memory block au cas où on veut rajouter des valeurs plus tard.
En résumé
- Rappel, lists are mutable et tuples are immutable.
- Les listes consomment plus de mémoire, contrairement aux tuples.
- Les listes sont délimitées par des crochets [ ], les tuples par des parenthèses ( )
- Les tuples sont utilisables comme clé d’un dictionnaire Python, contrairement aux listes
- Grâce à la mutabilité, plus d’opérations de manipulation sont disponibles pour les listes
Découvrez en plus les manipulations des Python Lists & Tuples à travers différentes les méthodes Python sur notre formation Python sur Datascientest.