Programmation python
Chapitre 4
Public :MPSI
Année Scolaire: 2024-2025 1
Plan du cours
Chapitre 1 : Introduction à Python et à son environnement & les types simples
Chapitre 2 : Instructions conditionnelles et itératives
Chapitre 3 : Les fonctions et modules
Chapitre 4 : Listes, chaines de caractères et dictionnaires
Chapitre 5 : Algorithmes classiques de Recherche et de Tris
Chapitre 6 : Les fichiers
Chapitre 7 : Introduction aux bibliothèques scientifiques
Année Scolaire: 2024-2025 2
Listes, chaines de caractères et dictionnaires
Listes- Définition
Une liste est une structure de données ordonnée et modifiable qui permet
de stocker plusieurs éléments, quels que soient leurs types.
Elles sont très utilisées en programmation pour manipuler des ensembles de
données.
Année Scolaire: 2024-2025 3
Listes, chaines de caractères et dictionnaires
Listes- Déclaration d'une liste
En python on déclare une liste en utilisant des crochets [ ] et en séparant les
éléments par des virgules.
Notation d'une liste:
# Liste simple contenant des nombres
liste1 = [1, 2, 3, 4]
print("liste1 =", liste1) # Affiche [1, 2, 3, 4]
# Liste contenant d'autres listes
liste2 = [[1, 2], [1], 1]
print("liste2 =", liste2) # Affiche [[1, 2], [1], 1]
# Liste vide
liste_vide = []
print("liste_vide =", liste_vide) # Affiche [ ]
Année Scolaire: 2024-2025 4
Listes, chaines de caractères et dictionnaires
Listes- Accéder aux éléments d'une liste
Les indices positifs
On peut accéder aux éléments d’une liste en utilisant leurs indices (index), qui
commencent à 0.
Les indices négatifs permettent d’accéder aux éléments en partant de la fin :
Année Scolaire: 2024-2025 5
Listes, chaines de caractères et dictionnaires
Listes- Modifier une liste
Les listes étant mutables, on peut modifier leurs éléments :
On peut aussi ajouter ou supprimer des éléments :
Année Scolaire: 2024-2025 6
Listes, chaines de caractères et dictionnaires
Listes- Modifier une liste
Exemple :
nombres = [10, 20, 30, 40, 30, 50]
[Link](30)
print(nombres)
# Affiche [10, 20, 40, 30, 50] → Seul le premier "30" a été supprimé
[Link](60)
# Tentative de suppression de la valeur 60 qui n'existe pas dans la liste
# Cette ligne va générer une erreur ValueError
Année Scolaire: 2024-2025 7
Listes, chaines de caractères et dictionnaires
Listes- Opérations et méthodes courantes sur les listes
En Python, on peut utiliser la fonction list() qui permet de convertir des itérables en listes.
Exemples
numbers_list = list(range(10)) # Convertit en liste
print(numbers_list) # Affiche : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Année Scolaire: 2024-2025 8
Listes, chaines de caractères et dictionnaires
Listes- Opérations et méthodes courantes sur les listes
Voici un tableau récapitulatif des différentes méthodes d'ajout d'éléments à une liste en Python
Déclaration initiale: nombres = [10, 20, 30]
Méthode Description Exemple d'utilisation Résultat après exécution
append(x) Ajoute un élément x à la fin de la [Link](40) [10, 20, 30, 40]
liste
insert(i, x) Insère x à l’index i [Link](1, 15) [10, 15, 20, 30]
extend(liste2) Ajoute tous les éléments de liste2 [Link]([40, 50, 60]) [10, 20, 30, 40, 50, 60]
à la fin
+ Concatène deux listes et crée une nouvelle_liste = nombres + nouvelle_liste = [10, 20, 30, 40, 50]
nouvelle liste [40, 50]
+= Ajoute les éléments d’une autre nombres += [40, 50] [10, 20, 30, 40, 50]
liste à nombres
append(liste2) Ajoute une liste entière comme [Link]([40, 50]) [10, 20, 30, [40, 50]]
un seul élément
9
Listes, chaines de caractères et dictionnaires
Listes- Opérations et méthodes courantes sur les listes
Déclaration initiale: nombres = [10, 20, 30, 40, 50, 30]
Méthode Description Exemple d'utilisation Résultat après exécution
remove(x) Supprime la première occurrence de x [Link](30) [10, 20, 40, 50, 30]
valeur = 30, nombres = [10, 20,
pop(i) Supprime et retourne l'élément à l'index i valeur = [Link](2)
40, 50, 30]
Retourne l’index de la première
index(x) position = [Link](40) position = 3
occurrence de x
count(x) Compte le nombre d'occurrences de x nb = [Link](30) nb = 2
sort() Trie la liste en ordre croissant [Link]() [10, 20, 30, 30, 40, 50]
reverse() Inverse l’ordre des éléments [Link]() [30, 50, 40, 30, 20, 10]
copy() Crée une copie indépendante de la liste copie = [Link]() copie = [10, 20, 30, 40, 50, 30]
Len(liste) Retourne la taille de la liste len(nombers) 6
clear() Supprime tous les éléments de la liste [Link]() nombres = []
10
Listes, chaines de caractères et dictionnaires
Listes- Opérations et méthodes courantes sur les listes
Exemple:
fruits = ["pomme", "banane", "orange"]
[Link]("kiwi")
print(fruits) # ['pomme', 'banane', 'orange', 'kiwi']
[Link]()
print(fruits) # ['banane', 'kiwi', 'orange', 'pomme']
11
Listes, chaines de caractères et dictionnaires
Listes-Parcourir une liste
On peut parcourir une liste avec une boucle for :
# Déclaration d'une liste contenant des noms d'animaux
animaux = ["chat", "chien", "lapin"]
# Parcours de la liste avec une boucle for (sans indices)
# Chaque élément de la liste est assigné à la variable 'animal'
# et affiché individuellement
for animal in animaux:
print(animal)
# Ou avec les indices :
# Utilisation de range(len(animaux)) pour parcourir la liste par indices
# 'i' représente l'indice de chaque élément dans la liste
for i in range(len(animaux)):
print(f"Animal {i} : {animaux[i]}")
12
Listes, chaines de caractères et dictionnaires
Listes- Slicing
Le slicing (tranchage) en Python permet d’extraire des sous-parties de structures de
données comme les listes, les chaînes de caractères. Il repose sur l’utilisation d’indices
pour définir des plages de valeurs.
La syntaxe générale est :
Remarque :
13
Listes, chaines de caractères et dictionnaires
Listes- Slicing
Exemple1:
14
Listes, chaines de caractères et dictionnaires
Listes- Slicing
Exemples
1. Donnez le résultat de :
2. Inversez my_list avec le slicing.
3. Utilisez le slicing pour récupérer les nombres pairs d'une liste de 0 à 20.
15
Listes, chaines de caractères et dictionnaires
Listes- Slicing
Exemples
1. Donnez le résultat de :
my_list = list(range(10)) # Création d'une liste contenant les nombres de 0 à 9
print(my_list) # Vérification du contenu de la liste -> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Slicing avec [1:8:2]
# - Start = 1 (début à l'indice 1, donc le 2ème élément : 1)
# - Stop = 8 (s'arrête avant l'indice 8, donc dernier élément pris : 7)
# - Step = 2 (sauter un élément à chaque fois)
print(my_list[1:8:2]) # Résultat : [1, 3, 5, 7]
16
Listes, chaines de caractères et dictionnaires
Listes- Slicing
Exemple2
2) Inversez my_list avec le slicing.
my_list = list(range(10)) # Création d'une liste contenant les nombres de 0 à 9
print(my_list) # Vérification du contenu de la liste -> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Utilisation du slicing avec step = -1
# - Prend toute la list (start et stop sont omis)
# - Parcourt la list en sens inverse
inversed_list = my_list[::-1]
print(inversed_list) # Résultat : [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
17
Listes, chaines de caractères et dictionnaires
Listes- Slicing
Exemples
3) Utilisez le slicing pour récupérer les nombres pairs d'une liste de 0 à 20.
numbers = list(range(21)) # Génère une liste de 0 à 20
print(numbers) # Vérification du contenu -> [0, 1, 2, 3, 4, ..., 20]
# Slicing avec step = 2
# - Prend toute la liste (start et stop omis)
# - Ne garde que les indices pairs : 0, 2, 4, ..., 20
nombres_pairs = numbers[::2]
print(nombres_pairs) # Résultat : [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
18
Listes, chaines de caractères et dictionnaires
Listes-Compréhension de liste
La compréhension de liste est une syntaxe concise permettant de créer des listes en une seule
ligne, de manière plus efficace et lisible.
Syntaxe de base :
19
Listes, chaines de caractères et dictionnaires
Listes-Compréhension de liste
Exemple : Créer une liste contenant les carrés des nombres de 0 à 9.
Méthode classique avec une boucle for
carres = [] # Initialisation d'une liste vide
for x in range(10):
[Link](x**2) # Ajout du carré de x à la liste
print(carres) # sortie: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Méthode équivalente avec une compréhension de liste
carres = [x**2 for x in range(10)]
print(carres) # sortie: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
20
Listes, chaines de caractères et dictionnaires
Listes-Compréhension de liste
Compréhension de liste avec condition (if)
Exemple:
Filtrer les nombres pairs dans une liste.
pairs = [x for x in range(10) if x % 2 == 0]
print(pairs) # [0, 2, 4, 6, 8]
Créer une liste indiquant si un nombre est pair ou impair.
parite = ["pair" if x % 2 == 0 else "impair" for x in range(5)]
print(parite) # ['pair', 'impair', 'pair', 'impair', 'pair']
21
Listes, chaines de caractères et dictionnaires
Exemple:
Écrire un script Python qui prend une liste de mots en minuscules et génère une
nouvelle liste contenant ces mots en majuscules.
# Déclaration d'une liste contenant des mots en minuscules
mots = ["python", "est", "puissant"]
# Création d'une liste vide pour stocker les mots en majuscules
maj = []
# Boucle for pour parcourir chaque mot de la liste 'mots'
for mot in mots:
# Conversion du mot en majuscules avec la méthode .upper() et ajout à la liste 'maj'
[Link]([Link]())
# Affichage de la liste contenant les mots en majuscules
print(maj) # ['PYTHON', 'EST', 'PUISSANT']
22
Listes, chaines de caractères et dictionnaires
Exemple:
Écrire un script Python qui prend une liste de mots en minuscules et génère une
nouvelle liste contenant ces mots en majuscules.
Compréhension de liste
# Déclaration d'une liste contenant des mots en minuscules
mots = ["python", "est", "puissant"]
# Utilisation de la compréhension de liste pour transformer chaque
mot en majuscules
# La méthode .upper() convertit une chaîne en majuscules
maj = [[Link]() for mot in mots]
# Affichage de la nouvelle liste contenant les mots en majuscules
print(maj) # ['PYTHON', 'EST', 'PUISSANT']
23
Listes, chaines de caractères et dictionnaires
24