2.1.5 Les types séquence

Il y a six types séquence: les chaînes de caractères (string), les chaînes de caractères unicode, les listes, les tuples1, les buffers2, les objets xrange.

Les chaînes de caractères littérales sont délimitées par des simples ou doubles guillemets: 'xyzzy', "frobozz". Voir le chapitre 2 de Python Reference Manual pour plus de détails sur les chaînes de caractères littérales. Les chaînes unicode sont comme les chaînes de caractères avec un préfixe "u" tel que: u'abc', u"def". Les listes sont délimitées par des crochets et les éléments y sont séparés par des virgules: [a, b, c]. Les tuples sont construits par l'opérateur virgule (pas à l'intérieur de crochets), avec ou sans parenthèses. Un tuple vide doit avoir des parenthèses. Par exemple: a, b, c ou () sont des tuples. Un tuple avec un seul élément doit avoir une virgule finale comme dans: (d,). Les buffers ne sont pas directement accessibles à travers la syntaxe du langage, mais ils peuvent tout de même être créés par la fonction buffer().. Les objets XRange sont similaires aux buffers en ce sens qu'il n'y a pas de syntaxe de création dans le langage, ils sont créés par la fonction xrange() .

Les opérations suivantes sont applicables aux types séquence. Les opérations "in" et "not in" ont la même priorité que les comparaisons. Les opérations "+" et "*" ont la même priorité que les opérations numériques équivalentes.3

La table suivante des opérations sur les séquences est ordonnée par priorité croissante (même priorité dans la même case). Dans la table, s et t sont des séquences de même type et n, i sont des entiers:

Opération Résultat Notes 
x in s1 si un élément de s est égal à x, sinon 0 
x not in s0 si un élément de s est égal à x, sinon 1 
s + tconcaténation de s et t 
s * n , n * sn copies de s concaténées(1)
s[i]le ième élément de s, en partant de 0(2)
s[i:j]intervalle dans s de i à j(2), (3)
len(s)nombre d'éléments de s 
min(s)plus petit élément de s 
max(s)le plus grand élément de s 

Notes:

(1)
Les valeurs de n plus petites que 0 sont traitées comme 0 (cela donne une séquence vide du même type que s).

(2)
Si i ou j sont négatifs, l'index débute depuis la fin de la séquence, c'est à dire len(s) + i ou len(s) + j sont substitués. En revanche, -0 est toujours 0.
(3)
L'intervalle dans s de i à j est défini comme la séquence d'éléments d'index k tel que i <= k < j. Si i ou j sont plus grands que len(s), len(s) est utilisé. Si j est absent, len(s) est utilisé. Si i est supérieur ou égal à j, l'intervalle est vide.


Sous-sections
  1. Méthodes des chaînes de caractères
  2. Opérations de formatage de chaînes
  3. Le type XRange
  4. Les types séquences variables



Notes

1
NDT: nous resterons sur le terme tuple plutôt que n-uplet.
2
NDT: nous resterons sur le terme buffer plutôt que tampon.
3
C'est nécessaire car l'interpréteur ne peut déterminer le type des opérandes.