1. Les séquences en Python - introduction
Il est possible de "stocker" plusieurs grandeurs dans une même structure, ce type de structure est appelé une séquence. De façon plus précise, nous définirons une séquence comme un ensemble fini et ordonné d'éléments indicés de 0 à n-1 (si cette séquence comporte n éléments). Nous allons étudier plus particulièrement 2 types de séquences : les p-uplets (ou tuples) et les tableaux (identifiés aux listes en Python).
2. Les tuples en Python
Comme déjà dit ci-dessus, un tuple est une séquence. Voici un exemple très simple :Tester successivement les affichages suivants pour comprendre comment accéder aux informations contenues dans un p-uplet.
ATTENTION :
- Le gros inconvénient des p-uplets est que l’on ne peut pas ajouter ou supprimer un élément. C’est pour cela que l’on dit qu’il est non mutable.
- Dans les séquences les indices commencent toujours à 0 (le premier élément de la séquence a pour indice 0), oublier cette particularité est une source d'erreur "classique".
3. Les listes en Python
3.1 Les tableaux
Cette structure, classique en programmation, n’existe pas dans le langage Python car
la structure liste va la remplacer en offrant plus de possibilités.
Un tableau est une structure permettant de rassembler plusieurs valeurs d’un même
type.
Par exemple, en algorithmique, la déclaration suivante :
permet de déclarer une variable permettant de stocker 5 entiers, qu’on peut initialiser ainsi :
En algorithmique, les tableaux sont indicés à partir de 1. Certains langages informatiques respectent cette règle, tandis que d’autres (comme le langage C et ses descendants) commencent à numéroter les indices à partir de 0. Avec un tableau de 5 éléments, on pourrait ainsi utiliser unTableau[0] jusqu’à unTableau[4].
Le tableau présenté ci-dessus est un tableau à 1 dimension, c’est-à-dire qu’il n’a qu’un seul indice. Il est facile de concevoir ce que peut être un tableau à 2 dimensions (une grille de mots croisés, un afficheur LED de 7x5, un calendrier avec les mois et les jours du mois…). En informatique, on peut manipuler des tableaux de n’importe quelle dimension (1, 2, 3, 4, …) pour autant que le programmeur se souvienne du rôle de chacun des indices !
Les principaux inconvénients de la structure tableau sont que les dimensions sont fixées lors de l’écriture du programme (même si de nombreux langages autorisent maintenant un dimensionnement dynamique au moment de l’exécution) et, dans une moindre mesure, que les éléments contenus dans un tableau doivent être tous du même type.
3.2 Les listes
Une liste est une structure à 1 dimension qui peut contenir des éléments de différents types et que l’on va pouvoir modifier dans son contenu comme dans sa taille en fonction de nos besoins (on parle d’objets “mutables”).Voici, en Python, comment on les définit :
Tester successivement les affichages suivants pour comprendre comment accéder aux informations contenues dans une liste. Elles sont semblables aux instructions vues précédemment avec les p-uplets.
Voici comment on peut modifier le contenu d’une liste ou bien fusionner deux listes. À chaque fois, tester l’instruction puis afficher la liste pour observer ce qui s’est passé.
Remarque : on pourrait s'interroger sur l'intérêt d'utiliser un p-uplet puisque la liste permet plus de choses ! La réponse est simple : les opérations sur les p-uplets sont plus "rapides". Quand vous savez que votre liste ne sera pas modifiée, il est préférable d'utiliser un p-uplet à la place d'une liste.
3.3. La boucle "for" permet de parcourir les éléments d'une liste
La boucle for... in permet de parcourir chacun des éléments d’une séquence (tuple ou liste). À vous de tester :C’est aussi ce qui se passe lorsque vous exécutez le code suivant. C’est comme si l’instruction range(n) contenait une liste avec les entiers de 0 à n-1. À vous de tester les différentes instructions pour comprendre les différents paramétrages de la méthode range.
Pour rappel, vous pouvez aussi utiliser la boucle for...in pour parcourir une chaîne de caractères et accéder à chaque caractère par un appel avec un crochet et un indice.
3.4. Définir une liste par compréhension
Certains langages de programmation autorisent la définition de listes par compréhension, c’est-à-dire des listes dont le contenu est défini par filtrage des éléments d’une autre liste.On peut par exemple créer les listes suivantes :
On peut également créer un tableau en deux dimensions initialisé avec des 0 :