Aller au contenu

Les tableaux en Python

Convention - Rappel

En Python, les éléments de type list sont ce qui s'approche le plus de la notion abstraite de « tableau ».
Pour cela, on veillera à ce que tous les éléments contenus dans le tableau de type list soient de même type.

Définition

En Python, un objet de type list est une séquence ordonnée d'éléments séparés par des virgules. Cet objet est délimité par des crochets :

>>> tab = [3, 4, 6, 7]

Nombre d'éléments

On obtient la longueur d'un tableau de type list avec la fonction len() (abréviation de length).

>>> tab = [88, 42, 666, 3, 17, 4, 11]
>>> len(tab)
7

Numérotation des éléments

Les éléments d'un tableau nommé tab sont numérotés (indexés) de 0 à len(tab)-1.

>>> tab = [88, 42, 666, 3, 17, 4, 11]
>>> tab[0]
88
>>> tab[1]
42
>>> tab[2]
666
>>> tab[6]
11
>>> tab[7]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

Attention !

Vous devez savoir interpréter les messages d'erreur tels que le précédent.
list index out of range (indice en dehors de la plage d'indices existante) signifie que vous cherchez à accèder à un élément de la liste via un indice n'existant pas.

Pythonnerie

Python permet également de numéroter -1 le dernier élément, -2 l'avant-dernier...

>>> tab = [88, 42, 666, 3, 17, 4, 11]
>>> tab[-1]
11
>>> tab[-2]
4
>>> tab[-3]
17
>>> tab[-len(tab)]
88

Pour un entier i compris entre 1 et len(tab), on pourra lire tab[-i] comme un raccourci de tab[len(tab)-i].

Modifier la valeur d'un élément

Contrairement aux chaînes de caractères, les tableaux sont muables. Cela signifie que l'on peut changer la valeur d'un élément du tableau sans changer de tableau.

>>> tab = [3, 2, 5, 6]
>>> tab[1] = 42
>>> tab
[3, 42, 5, 6]

Une explication complète sera donnée dans un prochain chapitre. Pour une explication partielle, vous pouvez consulter l'encart ci-dessous.

Explication

Pour constater que le conteneur de la liste n'est pas modifié même lorsque le contenu est modifié, on peut utiliser la fonction id() qui renvoie l'identifiant d'un objet Python. On peut considérer que cet identifiant est l'adresse en mémoire de l'objet.

>>> tab = [3, 2, 5, 6]
>>> id(tab)
139779891177608
>>> tab[1] = 42
>>> tab
[3, 42, 5, 6]
>>> id(tab)
139779891177608

On constate que tab, objet de type list, reste le même après avoir modifié l'un de ces éléments (mais son contenu a bien sûr changé).

Schématisation

>>> tab = [3, 2, 5, 6]
muable 01

>>> tab[1] = 42
muable 02