Aller au contenu principal

📊 Graphiques, List, Set

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]
Qu'est-ce qu'une méthode?

Une méthode est simplement une fonction rattachée à un type de données en particulier.
Pour appeler une méthode, la syntaxe est légÚrement différente, il faut toujours précéder l'appel du nom de la variable :

maVariable.maMethode()
maVariable.maMethode(parametre1)

Les méthodes disponibles vont varier selon le type de la variable.
Par exemple, voici des exemples de méthodes propres aux chaßnes de caractÚres :

# Exemples de méthodes existantes sur des strings
texte = "python est génial "
print(texte.upper()) # "PYTHON EST GÉNIAL "
print(texte.capitalize()) # "Python est génial "
print(texte.strip()) # "python est génial"
print(texte.strip().upper()) # "PYTHON EST GÉNIAL"
print(texte.replace("génial", "adorable")) # "python est adorable "

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 = [3, 4, 5, 6]
liste3 = liste1 + liste2
print(liste3) # Affiche [1, 2, 3, 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"