Prépa Python

Opérationnel — chapitre 23 sur 54

Itération avancée et range

Parcourir dict, filtrer, agréger, transformer — l'art d'itérer efficacement

75 minAbonnés

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).
python
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)

python
personne = {"nom": "Alice", "age": 30, "ville": "Paris"}

for cle in personne:              # équivaut à personne.keys()
    print(cle)

Parcours des valeurs

python
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 :

python
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.

python
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…).

python
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))
python
# 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.

python
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)
python
# Mettre tous les prénoms en majuscules
prenoms = ["alice", "bob", "charlie"]

majuscules = []
for p in prenoms:
    majuscules.append(p.upper())

print(majuscules)

Suite réservée aux abonnés

Débloquez l'intégralité du parcours

Les 54 chapitres, les exercices corrigés automatiquement, les examens blancs et le suivi de votre progression.

Voir les offresChapitres en accès libre

Déjà un accès ? Connectez-vous.