Propriétés communes aux séquences (hors “mutations”)

Il n’y a pas à proprement parler de type séquence en Python, mais on désigne comme tels les objets qui appartiennent à l’un des trois types suivants : les chaînes de caractères, les listes, et les tuples (il faudrait y ajouter les objets de type bytes ou array bytes, qui seront évoqués plus tard). Les intervalles (c’est-à-dire les objets créés par l’instruction range) peuvent aussi être considérés comme des séquences. Au-delà des différences entre ces types de données, les séquences ont un certain nombre de propriétés importantes en commun :

  • elles sont composées d’un nombre fini d’éléments auxquels on peut accéder par un indice. Ainsi seq[k] désigne l’élément situé en position k dans la séquence seq (la numérotation commence à 0).
  • un indice négatif signifie qu’on compte à partir de la fin. Ainsi seq[-1] désigne le dernier élément d’une séquence.
  • on peut effectuer des coupes (le terme anglais est slice). Ainsi seq[i:j] désigne la séquence (chaîne, liste ou tuple) formée des éléments qui sont en position i (inclus) à j (exclu) dans la séquence seq
  • on peut tester l’appartenance d’un élément à une séquence. La syntaxe est elt in seq (résultat booléen)
  • on peut parcourir une séquence au sein d’une boucle for. La syntaxe est for elt in seq
  • la longueur d’une séquence seq (le nombre d’éléments dont elle est constituée) est donnée par len(seq)

Dans le tableau ci-dessous, s et t désignent des séquences (chaînes, listes ou tuples), x désigne un objet pouvant appartenir à s, et on note i, j, k, n des entiers :

Opérations communes à tous les types de séquences
x in s True si x est dans s, False sinon x not in s False si x est dans s, True sinon
s + t Concaténation de s et t s * n, n * s concatène n copies de s
len(s) longueur de la séquence s s[i] le i-ème élément de s
s[i:j] coupe de s pour indices [i, j[ s[i:j:k] idem, mais avec un “pas” k
min(s) le plus petit élément de s max(s) le plus grand élément de s
s.index(x) le 1er indice où x est dans s s.count(x) le nombre de x dans s

Dans les pages qui suivent, on reviendra en détail sur l’utilisation spécifique des listes, des tuples et des chaînes de caractères, mais voici un bref aperçu :

  • Les chaînes de caractères sont délimitées par des guillemets doubles ("abc") ou simples ('abc'). Elles sont constituées de caractères au format unicode (qui permet de représenter les lettres de tous les alphabets).
  • Les listes sont des successions d’objets (eux-mêmes séparés par des virgules), délimitées par des crochets [ et ]. Elles peuvent contenir des objets de type quelconque. Un exemple de liste est [1,'a',[3.14,'xyz']].
  • Les tuples sont des successions d’objets (séparés par des virgules), délimitées par des parenthèses ( et ). Les tuples peuvent contenir des objets de type quelconque. Un exemple de tuple est : (1,'a',[3.14,'xyz']).
    Contrairement aux listes, les tuples ne sont pas mutables (voir plus loin). On ne peut donc pas modifier ou supprimer leurs éléments individuellement (on peut juste redéfinir un tuple dans sa totalité).

Remarquons que les fonctions intégrées list, tuple et str permettent de passer d’un type de séquence à l’autre :

Retour à l’accueil du cours Python/Numpy

Sommaire du chapitre 5

  1. Propriétés communes aux séquences (hors “mutations”)
  2. Séquences mutables ou non
  3. Listes définies “en compréhension”
  4. Opérations de mutation de listes
  5. Les tuples
  6. Les chaînes de caractères
  7. Méthodes importantes sur les chaînes (split, join, format)
  8. Objets de type bytes et bytearray