Python/Les structures de données
Listes
[modifier | modifier le wikicode]Une liste est une structure qui contient un certain nombre d'éléments, dans un certain ordre. Cette structure permet d'ajouter et de supprimer des éléments n’importe où dans la séquence.
Création d'une liste
[modifier | modifier le wikicode]Pour créer une liste, il suffit de mettre des éléments séparés par une virgule entre crochets.
Python permet aussi de créer des compréhensions de listes. La syntaxe Python pour de telle liste est la suivante : [expression for variable in séquence (if condition)].
>>> [i for i in range(1, 10)]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> [i for i in range(1, 10) if i % 2]
[1, 3, 5, 7, 9]
>>> [i ** 2 for i in range(1, 10) if i % 2]
[1, 9, 25, 49, 81]
Accesseurs/Modifieurs d'une liste
[modifier | modifier le wikicode]Python vous permet d'accéder facilement aux propriétés et éléments d'une liste. Pour accéder à un élément de la liste, il suffit d’utiliser l'opérateur []. Attention cependant, les indices commencent à 0.
- Attention : la fonction "range(indice_debut,indice_fin)" permet de faire référence à une liste d'éléments non modifiable dans l'intervalle indice_debut inclus et indice_fin exclus.
- Pour pouvoir modifier cette liste, il faut en faire une copie grâce à la méthode list()
- De même, l'opérateur une_liste[indice_debut:indice_fin:pas] appelle une liste d'éléments entre indice_debut et indice_fin non compris, et avec un certain pas (écart).
>>> l = range(1, 10)
>>> l
range(1, 10)
>>> l = list(l)
>>> l
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[5]
6
>>> l[0:5]
[1, 2, 3, 4, 5]
>>> l[0:5:2]
[1, 3, 5]
>>> l[3] = 14
>>> l
[1, 2, 3, 14, 5, 6, 7, 8, 9]
>>> l[0:5:2] = [11, 13, 15]
>>> l
[11, 2, 13, 14, 15, 6, 7, 8, 9]
Ajout d'éléments
[modifier | modifier le wikicode]Vous pouvez ajouter des éléments à une séquence existante. La méthode "append" ajoute un simple élément à la fin de la liste. La méthode "extend" concatène une séquence à la liste. La méthode "insert" ajoute un élément à un indice donné et décale les autres éléments vers la droite.
>>> l = [1, 2, 3]
>>> l
[1, 2, 3]
>>> l.append(4) ## ajoute l'élément 4 à la fin de la liste
>>> l
[1, 2, 3, 4]
>>> l.append([1, 2]) ## ajoute l'élément liste [1, 2] à la fin de la liste
>>> l
[1, 2, 3, 4, [1, 2]]
>>> l.insert(1, 22) ## insère l'élément 22 à la position 1
>>> l
[1, 22, 2, 3, 4, [1, 2]]
>>> l.extend(1) ## erreur extend prend une liste en paramètre
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: iteration over non-sequence
>>> l.extend([5, 6]) ## concatène la liste [5, 6] à la fin de la liste
>>> l
[1, 22, 2, 3, 4, [1, 2], 5, 6]+
>>> len(l)
8
Suppression d'éléments
[modifier | modifier le wikicode]La méthode "remove" permet de supprimer la première occurrence d'une valeur dans une liste.
>>> l = [1, 22, 2, 3, 4, [1, 2], 5, 6]
[1, 22, 2, 3, 4, [1, 2], 5, 6]
>>> del l[1] ## suppression de l'élément d'indice 1
>>> l
[1, 2, 3, 4, [1, 2], 5, 6]
>>> l.remove(2) ## suppression de la première occurrence de 2
>>> l
[1, 3, 4, [1, 2], 5, 6]
>>> l.remove(7) ## erreur : 7 ne fait pas partie de la liste
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ValueError: list.remove(x): x not in list