top of page

LES LISTES

Les listes, aussi appelées vecteurs, sont des variables dans lesquelles on peut stocker une suite de valeurs.

À chaque élément d'une liste correspond un indice (le premier élément est situé à l'indice 0). 

C'est d'ailleurs grâce aux indices que l'on peut accéder aux éléments d'une liste.​ Pour cela, il faut indiquer le nom de la liste puis mettre entre crochets le ou les indices à prendre en compte.

liste = [1,2,3,4,5,6,7,8,9]

liste[0,1,2] # Renvoie les 3 premières valeurs de la liste

liste[-1] # Renvoie le dernier élément de la liste.

liste[0][1] # Pour les listes de listes (les tableaux). Renvoie le deuxième élément de la première liste

On peut aussi faire ce qu'on appelle du slicing, c'est-à-dire définir un suite d'indice en indiquant seulement le premier ou dernier indice à prendre en compte. Cela se fait avec les deux points. La position des deux points (à droite ou à gauche de l'indice) indique si on prend tous les éléments à droite de l'indice ou tous ceux à gauche.

liste[:10] # Renvoie les 10 premiers éléments de la liste

liste[10:] # Renvoie tous les éléments de la liste à partir du 11ème jusqu’à la fin de la liste

La compréhension de liste est une manière compacte et rapide d'ajouter les éléments d'un itérable dans une liste. On utilise une boucle for directement dans les crochets de création de la liste en ajoutant devant le for ce que l'on veut ajouter dans la liste.

liste = [element for element in listeElements] # Remplit la liste de tous les éléments de listeElements.

Cette ligne est totalement équivalente aux lignes suivantes :

for element in listeElements:

    liste.append(element)

Cela permet aussi de remplir une liste d'une même valeur :

liste = [True for _ in range(10)] # Remplit la liste de 10 booléens True

liste = [element*element for element in liste] # Met toutes les valeurs de la liste au carré

liste = [random() for _ in range(10)] # Remplit la liste de 10 valeurs aléatoire entre 0 et 1

Enfin, on peut aussi ajouter une condition if dans les compréhension de liste :

liste = [element for element in liste if element<=5] # Garde seulement les valeurs de la liste inférieures ou égales à 5.

Pour obtenir une liste contenant une séquence de valeurs, on peut utilise la fonction connue de tous : la fonction range.

list(range(1,10)) # Renvoie la liste [1,2,3,4,5,6,7,8,9]

list(range(1,10,2)) # Renvoie la liste [1,3,5,7,9]

list(range(0,100,10)) # Renvoie la liste [0,10,20,30,40,50,60,70,80,90]

Pour ajouter un élément dans une liste, on peut utiliser les fonctions append ou insert.

Pour ajouter un élément en fin de liste, on utilise la fonction append :

liste.append('a') # Ajoute 'a' en fin de liste

liste.append(1) # Ajoute 1 en fin de liste

Si l'on souhaite insérer un élément à une position précise dans la liste, il faut utiliser la fonction insert qui prend deux paramètres : la position (l'indice) et l'élément à ajouter.

liste.insert(1, 10) # Ajoute 10 en deuxième position

Pour supprimer un élément d'une liste, on peut utiliser trois fonctions : del, pop et remove.

Tout d'abord, la fonction del permet de supprimer un élément précis en l'indiquant en paramètre.

liste = [1,2,3,4,5,6,7,8,9]

del(liste[1]) # Supprime le deuxième élément de la liste

del(liste[:3]) # Supprime les trois premiers éléments de la liste

print(liste) # Affiche [5,6,7,8,9]

La fonction pop permet de supprimer un et un seul élément d'une liste en indiquant sa position. Si on ne précise aucun indice, la fonction supprimera le dernier élément de la liste.

liste.pop(2) # Supprime le troisième élément de la liste

liste.pop() # Supprime le dernier élément de la liste

Une autre façon de supprime un élément d'une liste est d'utiliser la fonction remove. Cette fonction va supprimer le premier élément correspond à la valeur indiquée en paramètre.

liste = [1,2,1,1,4,2]

liste.remove(2) # Supprimer le premier 2. La liste devient [1,1,1,4,2]

Enfin, pour vider une liste c'est-à-dire supprimer tous ses éléments, on utilise la fonction clear.

liste.clear() # Vide la liste de tous ses éléments

Attention, les fonctions append, insert, del, pop, remove et clear modifient une liste mais ne renvoient rien. Les lignes suivantes ne marcherons donc pas :

print(del(liste[1])) # Affiche None

nouvelle_liste = liste.append(1) # nouvelle_liste = None

Pour régler ce problème, il faut décompose le code en deux phases :

del(liste[1]) # On supprime

print(liste) # Puis on affiche

liste.append(1) # On ajoute

nouvelle_liste = liste # Puis on crée une nouvelle liste

bottom of page