📘 Algorithmique et notion de listes
En Première, l’algorithmique est centrée sur la manipulation de listes en Python. Les listes permettent de stocker et traiter des suites de données.
📐 I. Notion de liste en Python
Définition : une liste est une collection ordonnée d’éléments (de types éventuellement différents), délimitée par des crochets.
ma_liste = [3, 7, 2, 9, 1]
ma_liste2 = ["Alice", True, 3.14]
Accès à un élément : ma_liste[i] renvoie l’élément d’indice i (les indices commencent à 0).
ma_liste[0] # → 3
ma_liste[2] # → 2
ma_liste[-1] # → dernier élément : 1
Longueur : len(ma_liste) → nombre d’éléments.
📐 II. Opérations sur les listes
| Opération | Syntaxe Python |
|---|---|
| Ajouter un élément en fin | liste.append(x) |
| Insérer à la position i | liste.insert(i, x) |
| Supprimer premier x trouvé | liste.remove(x) |
| Supprimer à l’indice i | del liste[i] |
| Modifier l’élément i | liste[i] = nouvelle_valeur |
| Tranche (sous-liste) | liste[a:b] |
| Concaténer deux listes | liste1 + liste2 |
📐 III. Parcours et traitement de listes
Parcours par indice :
for i in range(len(liste)):
print(liste[i])
Parcours par élément :
for x in liste:
print(x)
Calcul de la somme / moyenne :
somme = sum(liste)
moyenne = sum(liste) / len(liste)
Création par compréhension :
# Liste des carrés de 0 à 9
carres = [i**2 for i in range(10)]
📐 IV. Algorithmes courants
Recherche d’un maximum :
def maximum(liste):
m = liste[0]
for x in liste:
if x > m:
m = x
return m
Tri (bulle simplifié) : Python dispose de liste.sort() (tri en place) et sorted(liste) (renvoie une nouvelle liste triée).
Génération des n premiers termes d’une suite :
def suite(u0, n):
u = [u0]
for i in range(n):
u.append(2*u[-1] - 1) # exemple : uₙ₊₁ = 2uₙ - 1
return u
💡 À retenir
• Indices débutent à 0 ; dernier élément : liste[−1].
• Ajouter : liste.append(x) ; longueur : len(liste).
• Parcours : for x in liste (par élément) ou for i in range(len(liste)) (par indice).
• Création par compréhension : [f(i) for i in range(n)].