Les listes
Pourquoi utiliser des listes ?
Mise en situation
Vous devez gérer les données des planètes des différents systèmes solaires. Chaque planète a un nom. Vous ne savez pas combien de planètes sont exactement présentes dans ces systèmes solaires. Vous devez afficher le nom de toutes les planètes.
Solution sans liste
# Saisie de chaque variable
planete_01_nom = "Mercure"
planete_02_nom = "Vénus"
planete_03_nom = "Mars"
planete_04_nom = "Terre"
# jusqu'à
planete_08_nom = "Uranus"
# Affichage des noms et des distances un par un
print(planete_01_nom)
print(planete_02_nom)
print(planete_03_nom)
print(planete_04_nom)
# jusqu'à
print(planete_08_nom)
Solution avec une liste
L’utilisation des listes permettra d’exécuter cette tâche beaucoup plus facilement. Vous pourrez ajouter/modifier/enlever des planètes.
Losque nous ne connaissons pas le nombre de données à saisir dans une liste, il convient de créer une liste vide.
# Remplissage de la liste
planetes = []
Une fois cette liste vide instanciée, nous utilisons la méthode append()
pour rentrer nos informations.
planetes.append("Mercure")
planetes.append("Vénus")
planetes.append("Mars")
planetes.append("Terre")
# etc...
planetes.append("Uranus")
print(planetes)
['Mercure', 'Vénus', 'Mars', 'Terre', 'Uranus']
Enfin, pour afficher les données de notre liste, nous devons boucler sur cette liste afin d’afficher les planètes une par une. Pour cela, la boucle for s’y prête bien.
- 1er exemple:
for i in range(len(planetes)):
print(planetes[i])
Mercure
Vénus
Mars
Terre
Uranus
Dans ce premier exemple, nous bouclons sur la longueur de notre liste et nous affichons le ième élément de notre liste où i correspond à notre indice.
len(planetes)
nous retourne la longueur de la liste.
Ce sont les []
avec l’indice i
qui donnerons l’accès à la valeur saisie.
- 2ème exemple:
for planete in planetes:
print(planete)
Mercure
Vénus
Mars
Terre
Uranus
Dans ce deuxième exemple nous parcourons la liste pour afficher directement les données une à une présente dans notre liste.
L’affichage est exactement le même, seule la méthode change.
Qu’est-ce qu’une liste ?
En Python, une liste est une collection ordonnée et modifiable d’éléments. Les listes sont utilisées pour stocker plusieurs éléments dans une seule variable et peuvent contenir des éléments de différents types, y compris des nombres, des chaînes de caractères, d’autres listes, etc. Les listes en Python sont définies en utilisant des crochets []
.
Caractéristiques d’une liste
- Ordonnée : Les éléments de la liste conservent un ordre défini, ce qui signifie que l’ordre dans lequel vous ajoutez les éléments est préservé.
- Modifiable : Une liste peut être modifiée après sa création, ce qui signifie que vous pouvez ajouter, supprimer ou changer des éléments.
- Taille Dynamique : Une liste en Python peut changer de taille dynamiquement. Vous pouvez ajouter ou supprimer des éléments sans avoir à spécifier la taille initiale de la liste.
- Hétérogène : En Python, une liste peut contenir des éléments de différents types (entiers, chaînes de caractères, listes, etc.).
- Bien qu’il est possible de le faire, il faut rester prudent lorsqu’on utilise des listes hétérogènes. Elles pourraient entraîner des erreurs, notamment dans les boucles.
Comment utiliser une liste ?
Opérations simples
Création d’une liste
Comme stipulé précédemment, si nous n’avons pas connaissance de la quantité de données que nous mettrons à l’intérieur de notre liste, il faut créer une liste vide. Dans le cas contraire, il est possible de directement saisir les données à l’intérieur de la liste sans faire la première étape.
# Création d'une liste vide
ma_liste = []
# Liste avec des éléments
ma_liste = [6, 3, 8, 9, 7, 3, 1, 2]
Accès aux Éléments d’une Liste
Les crochets []
sont utilisés pour accéder directement à l’élément correspondant.
# Accès au premier élément
print(ma_liste[0]) # Affiche 6
# Accès au dernier élément
print(ma_liste[-1]) # Affiche 2
# Opérations sur les éléments de la liste
somme = ma_liste[1] + ma_liste[3] # est l'équivalent de 3 + 9, soit les éléments qui se trouve aux indices 1 et 3
print(somme) # Affiche 12
Notez que les indices commencent à zéro.
Ajout d’Éléments
# Liste vide
ma_liste = []
# Ajoute la valeur 6 à la fin de la liste
ma_liste.append(6)
# Ajoute la valeur 3 à la fin de la liste
ma_liste.append(3)
ma_liste.append(8)
ma_liste.append(9)
ma_liste.append(7)
ma_liste.append(3)
ma_liste.append(1)
ma_liste.append(2)
Chaque nouveau nombre est ajouté dans l’ordre. La liste restera ordonnée dans le reste du code.
Modification des Éléments
# La valeur de la case à l'indice 2 est maintenant 0
ma_liste[2] = 0
# La valeur de la case à l'indice 4 est maintenant la même que celle de la case à l'indice 7
ma_liste[4] = ma_liste[7]
Suppression d’Éléments
# Supprime le dernier élément de la liste
ma_liste.pop()
# Supprime l'élément à l'indice 2
ma_liste.pop(2)
# Supprime la première occurrence de la valeur 3
ma_liste.remove(3)
Lors de la suppression, les valeurs après sont décalées.
Insertion
# Insert la valeur 7 à l'indice 3
ma_liste.insert(3, 7)
Triage
La fonction sort()
modifie la liste initiale, elle ne se stocke pas dans une nouvelle variable.
# La liste est triée en ordre croissant
ma_liste.sort()
print(ma_liste)
La fonction sorted()
retourne une liste triée qui devra être stockée dans une variable. (utile lorsque nous voulons garder notre liste initiale.)
# La liste est triée en ordre croissant
liste_triee = sorted(liste) # Renvoie une nouvelle liste triée
print(liste_triee) # Affiche la nouvelle liste triée
# La liste est triée en ordre décroissant
ma_liste.sort(reverse=True)
Fonctions et méthodes
Fonctions | |
---|---|
len() |
Retourne la longueur de la liste |
max() |
Retourne la valeur maximum de la liste |
min() |
Retourne la valeur minimum de la liste |
Méthodes | |
---|---|
append() |
Ajoute un élément à la fin de la liste |
insert() |
Ajoute un élément à un endroit spécifique dans la liste |
remove() |
Supprime un élément de la valeur spécifiée |
pop() |
Supprime un élément selon sa position et retourne la valeur |
del() |
Supprime un élément selon sa position |
[] |
Permet d’accéder à un élément de la liste selon sa position |
extend() |
Ajoute tous les éléments d’une liste dans une autre liste. Exemple : liste.extend([1, 2 , 3]) |
clear() |
Efface tous les éléments d’une liste |
index() |
Retourne l’indice du premier élément dont la valeur est égale à celle spécifiée |
sort() |
Trie les éléments de la liste |
reverse() |
Inverse l’ordre des éléments de la liste |
copy() |
Retourne une copie superficielle de la liste |
Parcourir les éléments d’une liste (à l’aide d’une boucle)
Un premier exemple serait de parcourir chacun des éléments de la liste avec une boucle for
:
ma_liste = [1, 2, 3, 4, 5]
# Affichage de chacun des éléments de la liste
for element in ma_liste:
print(element)
1
2
3
4
5
Il est aussi possible d’utiliser la fonction range()
afin de parcourir la liste à l’aide des indices:
# On additionne 1 à chaque élément de la liste
for i in range(len(ma_liste)):
ma_liste[i] = ma_liste[i] + 1
print(ma_liste)
2
3
4
5
6
Les listes dans les listes
Une liste peut comporter tout type d’élément.
Nous pouvons donc mettre des listes dans des listes.
Nous parlons alors de listes (ou tableaux) à 2 dimensions.
# Liste contenant 3 éléments
# Chaque élément est une liste contenant 2 nombres
matrice = [[1, 2], [3, 4], [5, 6]]
Pour parcourir toutes les listes, il suffit de mettre une boucle dans une boucle :
# On parcourt chaque éléments de la liste principale
for sous_liste in matrice:
# et ensuite chaque élément de la "sous-liste"
for element in sous_liste:
print(element)
1
2
3
4
5
6
Les opérations vues sur les listes en 1 dimension fonctionnent aussi pour les listes en 2D:
print(matrice[0]) # affiche la première liste de la matrice
print(matrice[0][1]) # affiche le 2e élément de la première liste de la matrice
matrice.append([7, 8]) # ajoute une nouvelle liste à la matrice
[1, 2]
2
Comme nous l’avons vu plus haut, la fonction range()
peut aussi être utilisé pour parcourir les listes à 2 dimensions :
# On ajoute 1 à chaque élément de la matrice
for i in range(len(matrice)):
for j in range(len(matrice[i])):
matrice[i][j] = matrice[i][j] + 1
Ateliers
Atelier 1
Atelier 2
Atelier sur la régression linéaire