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]
>>> tab[1] = 42