Vous savez déjà écrire des boucles for et while. Ce chapitre va plus loin : comment itérer proprement sur les structures complexes (dicts, listes imbriquées), et comment enchaîner les opérations de filtrage / agrégation / transformation — les briques de base du traitement de données en Python.
Rappel : les objets itérables
Un objet est itérable si on peut le parcourir avec for. En Python, c'est le cas de :
- Listes, tuples, sets, dictionnaires.
- Chaînes de caractères.
- Objets
range. - Fichiers ouverts (chaque ligne devient un élément).
- Générateurs (vus en Partie 4).
for x in [1, 2, 3]: print(x, end=" ")
print()
for c in "abc": print(c, end=" ")
print()
for k in {"a": 1, "b": 2}: print(k, end=" ")
print()
for n in range(3): print(n, end=" ")Parcourir un dictionnaire : les 3 méthodes à connaître
Vu au chapitre 8 de la Partie 1, mais essentielles à maîtriser. Le TOSA teste les trois façons.
Parcours des clés (par défaut)
personne = {"nom": "Alice", "age": 30, "ville": "Paris"}
for cle in personne: # équivaut à personne.keys()
print(cle)Parcours des valeurs
for valeur in personne.values():
print(valeur)Parcours simultané clé + valeur (items)
La forme la plus utile, à privilégier systématiquement quand vous avez besoin des deux :
for cle, valeur in personne.items():
print(f"{cle} → {valeur}")Tableau récapitulatif
| Ce qu'on veut | Méthode |
|---|---|
| Juste les clés | for k in d: |
| Juste les valeurs | for v in d.values(): |
| Les paires clé/valeur | for k, v in d.items(): |
Filtrer pendant un parcours
Filtrer = garder certains éléments selon une condition.
notes = [12, 8, 15, 7, 18, 10, 14]
# Ne garder que les notes >= 10
reussites = []
for n in notes:
if n >= 10:
reussites.append(n)
print(reussites)Agréger pendant un parcours
Agréger = combiner plusieurs valeurs en une seule (somme, moyenne, maximum, comptage…).
notes = [12, 8, 15, 7, 18, 10, 14]
# Somme, moyenne
somme = 0
for n in notes:
somme += n
print("Somme :", somme)
print("Moyenne :", somme / len(notes))# Comptage sous condition
notes = [12, 8, 15, 7, 18, 10, 14]
nb_reussites = 0
for n in notes:
if n >= 10:
nb_reussites += 1
print(f"{nb_reussites} élèves ont la moyenne sur {len(notes)}.")Transformer pendant un parcours
Transformer = appliquer une fonction à chaque élément pour produire une nouvelle collection.
notes_sur_20 = [12, 15, 9, 17, 11]
# Convertir en note sur 100
notes_sur_100 = []
for n in notes_sur_20:
notes_sur_100.append(n * 5)
print(notes_sur_100)# Mettre tous les prénoms en majuscules
prenoms = ["alice", "bob", "charlie"]
majuscules = []
for p in prenoms:
majuscules.append(p.upper())
print(majuscules)