Aller au contenu principal

📊 Graphiques, List, Set

🏗️ en construction 🏗

Introduction aux listes

Jusqu'ici nous avons vu les 4 types de données de base en Python :

  • les entiers (int) : 5, -3, 42, 0, ...
  • les nombres à virgule (float) : 3.14, -0.001, 2.0, ...
  • les chaînes de caractères (str) : "Bonjour", 'a', "123", ...
  • les booléens (bool) : True, False

Mais Python propose aussi des types de données plus complexes, comme les listes, les tuples, les ensembles et les dictionnaires.
Nous allons commencer par les listes.
Une liste est une collection ordonnée et modifiable d'éléments, qui peuvent être de n'importe quel type de données.
Les listes sont définies par des crochets [], avec les éléments séparés par des virgules.
Par exemple :

ma_liste = [1, 2, 3, 4, 5]
noms = ["Alice", "Bob", "Charlie"]
mixte = [1, "deux", 3.0, True]

Accéder aux éléments d'une liste

On peut accéder aux éléments d'une liste en utilisant leur index, qui commence à 0.
Par exemple, pour accéder au premier élément de ma_liste, on écrit ma_liste[0] :

print(ma_liste[0])  # Affiche 1
print(noms[1]) # Affiche "Bob"
print(mixte[2]) # Affiche 3.0

On peut aussi utiliser des indices négatifs pour accéder aux éléments en partant de la fin de la liste :

print(ma_liste[-1])  # Affiche 5 (dernier élément)
print(noms[-2]) # Affiche "Bob" (avant-dernier élément)
print(mixte[-3]) # Affiche "deux" (troisième élément en partant de la fin)

On peut aussi utiliser la notation de tranche (slicing) pour accéder à une sous-liste :

print(ma_liste[1:4])  # Affiche [2, 3, 4] (éléments d'index 1 à 3)
print(noms[:2]) # Affiche ["Alice", "Bob"] (2 premiers éléments)
print(mixte[2:]) # Affiche [3.0, True] (à partir de l'index 2 jusqu'à la fin)

Modifier les éléments d'une liste

On peut modifier les éléments d'une liste en utilisant leur index et en leur assignant une nouvelle valeur :

ma_liste[0] = 10
print(ma_liste) # Affiche [10, 2, 3, 4, 5]

Ajouter et supprimer des éléments

On peut ajouter des éléments à une liste en utilisant la méthode append() pour ajouter un élément à la fin de la liste :

ma_liste.append(6)
print(ma_liste) # Affiche [10, 2, 3, 4, 5, 6]

Ou la méthode insert() pour insérer un élément à une position spécifique :

ma_liste.insert(1, 15)  # Insère 15 à l'index 1
print(ma_liste) # Affiche [10, 15, 2, 3, 4, 5, 6]

On peut supprimer des éléments en utilisant la méthode remove() pour supprimer la première occurrence d'une valeur spécifique :

ma_liste.remove(15)
print(ma_liste) # Affiche [10, 2, 3, 4, 5, 6]

Ou la méthode pop() pour supprimer un élément à une position spécifique (par défaut, le dernier élément) et le retourner :

dernier = ma_liste.pop()
print(dernier) # Affiche 6
print(ma_liste) # Affiche [10, 2, 3, 4, 5]

Longueur d'une liste

On peut obtenir la longueur d'une liste (le nombre d'éléments qu'elle contient) en utilisant la fonction intégrée len() :

print(len(ma_liste))  # Affiche 5

Vérification de présence

On peut vérifier si un élément est présent dans une liste en utilisant l'opérateur in :

if 3 in ma_liste:
print("3 est dans la liste")
else:
print("3 n'est pas dans la liste")

3 in ma_liste est une expression booléenne qui renvoie True si 3 est dans ma_liste, sinon False.


Ordre et tri

Les listes en Python sont ordonnées, ce qui signifie que les éléments conservent leur ordre d'insertion.

On peut utiliser la fonction sorted() pour obtenir une nouvelle liste triée sans modifier l'originale :

liste_triee = sorted(ma_liste)
print(liste_triee) # Affiche [2, 3, 4, 5, 10]
print(ma_liste) # Affiche [10, 2, 3, 4, 5] (originale non modifiée)

On peut aussi trier une liste en utilisant la méthode sort() pour trier la liste en place (modifie la liste originale) :

ma_liste.sort()
print(ma_liste) # Affiche [2, 3, 4, 5, 10]

On peut trier dans l'ordre décroissant en passant le paramètre reverse=True :

noms.sort(reverse=True)
print(noms) # Affiche ['Charlie', 'Bob', 'Alice']

Dans cet exemple, la liste noms est triée en ordre alphabétique décroissant, car les chaînes de caractères sont comparées selon l'ordre lexicographique.


Copie de liste

Si on fait :

liste1 = [1, 2, 3]
liste2 = liste1

alors liste2 n'est pas une copie de liste1, mais une autre référence vers la même liste.
Donc si on modifie liste2, liste1 est aussi modifiée :

liste2.append(4)
print(liste1) # Affiche [1, 2, 3, 4]

Pour faire une vraie copie, on peut utiliser la méthode copy() :

liste1 = [1, 2, 3]
liste2 = liste1.copy()
liste2.append(4)
print(liste1) # Affiche [1, 2, 3]
print(liste2) # Affiche [1, 2, 3, 4]

Concaténation et répétition

On peut concaténer deux listes en utilisant l'opérateur + :

liste1 = [1, 2, 3]
liste2 = [4, 5, 6]
liste3 = liste1 + liste2
print(liste3) # Affiche [1, 2, 3, 4, 5, 6]

On peut aussi répéter une liste en utilisant l'opérateur * :

liste = [1, 2, 3]
liste_repetee = liste * 3
print(liste_repetee) # Affiche [1, 2, 3, 1, 2, 3, 1, 2, 3]

Mise en abîme

Vous l'aurez peut-être deviné, on peut même avoir des listes de listes :

liste_de_listes = [[1, 2, 3], ["a", "b", "c"], [True, False]]
print(liste_de_listes[0]) # Affiche [1, 2, 3]
print(liste_de_listes[1][1]) # Affiche "b"