Autres types de séquence
Deux autres principaux types de séquences existent en Python. On a déjà rencontré les chaines de caractères, qui sont en fait des séquences non modifiables de caractères, et il y a aussi les intervalles de nombres entiers, également non modifiables.
Chaine de caractères
Les chaines de caractères sont des séquences non modifiables de caractères. On peut appliquer sur ces dernières tout ce qu'on a vu sur les listes, sauf les opérations de modification, évidemment. Voici un exemple qui utilise des chaines de caractères :
L'avant-dernière instruction provoque une erreur d'exécution puisque les chaines de caractères ne sont pas modifiables :
papa 4 False ap papa est là. Traceback (most recent call last): File "program.py", line 10, in <module> p[0] = "P" TypeError: 'str' object does not support item assignment
L'opérateur d'appartenance (in
) possède un comportement supplémentaire pour les chaines de caractères. Il permet de tester si une chaine donnée est une sous-chaine d'une autre ou non. Par exemple, on peut vérifier si une chaine de caractères s
contient la sous-chaine "pa"
grâce à l'instruction suivante :
Intervalle
Un intervalle est une séquence d'entiers consécutifs, délimitée par deux bornes (une valeur minimale et une valeur maximale). On crée un nouvel intervalle à l'aide de la fonction prédéfinie range
. Voici comment déclarer une séquence d'entiers correspondant à l'intervalle des nombres entiers compris entre $1$ (inclus) et $5$ (exclu) :
Comme on le verra plus loin dans ce chapitre, les intervalles sont, par exemple, utilisés pour parcourir d'autres séquences. Un intervalle est une séquence non modifiable, et on peut utiliser tout ce qu'on a vu sur les listes, à l'exception des opérations de modification, de concaténation et de répétition. Voici quelques instructions que l'on peut écrire :
Le résultat de leur exécution est conforme à celui attendu :
range(1, 5) 4 3 range(3, 5)
Par défaut, les éléments d'un intervalle sont distants de une unité. On peut spécifier un pas d'intervalle différent avec le troisième paramètre de la fonction range
. Par exemple, on peut construire un intervalle avec les cinq premiers nombres pairs comme suit :
L'avantage des intervalles est leur occupation mémoire qui est nettement inférieure à celle d'une liste ou d'un tuple. Ces derniers doivent stocker toutes les valeurs de la séquence, alors que l'intervalle ne stocke essentiellement que les premier et dernier éléments, ainsi que le pas.