Indexage avancé de listes
Aperçu
Questions
Comment accéder au n-ème élément d’une liste en partant de la fin ?
Comment extraire une sous-partie d’une liste ?
Comment inverser l’ordre d’une liste ?
Objectifs
Comprendre les indices négatifs.
Comprendre les tranches de listes.
Syntaxe : Indices négatifs de liste
L’indice dans l’accès à une liste peut être négatif, pour compter la position de l’élément en partant de la fin de la liste. Si
lest une liste etiest négatif, on a:l[i]qui est équivalente à :
l[len(l) + i]Vue autrement,
l[-j]est équivalent àl[len(l) - j].
Syntaxe : Tranches de liste
L’indice dans l’accès à une liste peut être complexe, pour extraire une « tranche » (sous partie de liste). Si
lest une liste eta,b,ctrois entier (variables, constantes ou expressions) :res = l[a:b:c]est équivalente à :
res = [] for i n range(a, b, c): res.append(l[i])ou, avec la liste en compréhension :
res = [l[i] for i in range(a, b, c)]Remarques:
- Il est possible d’utiliser cette construction à gauche du
=(pour remplacer les valeurs de la tranche de liste par celles d’une autre liste.- Il est possible d’omettre le
a, dans ce cas la tranche part du début de la liste.- Il est possible d’omettre le
b, dans ce cas la tranche va jusqu’à la fin de la liste.- Il est possible d’omettre le
c, dans ce cas le pas vaut 1 (exemples :l[1:8:],l[5::],l[3::]).- Si le
cest omis, il est possible d’omettre le second:(exemples :l[1:8],l[5:],l[:3]).
Points Clés
Un indice négatif compte en partant de la fin de la liste.
L’indice de -1 représente le dernier élément de la liste, -2 l’avant dernier, etc.