Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Lire et filtrer des lignes en Python

La leçon entière est à lire ici. Créez un compte gratuit pour lancer ses commandes dans un laboratoire et passer ses quiz et ses exercices.

Leçon de 45 minAucune commande

Combien de commandes partent vers Lille ?

Vous venez d'entrer dans une PME qui vend du café en ligne. Votre responsable vous envoie l'export des commandes du mois.

Sa question est simple : « Combien de commandes partent vers Lille ? »

Le fichier compte 6 000 lignes. Personne ne les lit une par une. Quelques lignes de Python répondent en une seconde.

À la fin de cette leçon

Remarque

Je peux lire et filtrer des lignes de données en Python.

Mots-clés

MotCe que ça veut direExemple
Ligneun enregistrement, par exemple une commande
Colonneune information que chaque ligne possèdeville
Dictionnairedes valeurs rangées sous un nom{"ville": "Lille"}
Liste de dictionnairesun tableau : un dictionnaire par ligne
Filtrergarder seulement les lignes qui passent un test

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une ligne est un dictionnaire

Dans un tableur, les noms de colonnes sont en haut. Chaque commande occupe une ligne.

En Python, une ligne est un dictionnaire. Chaque nom de colonne est une clé. La clé donne la valeur de cette ligne.

Le tableau entier est une liste de ces dictionnaires. commandes[0] est la première ligne. commandes[0]["ville"] est sa ville.

Lire une ligne et une valeur

Code: python
# Chaque commande est une ligne : un dictionnaire, nom de colonne puis valeur.
commandes = [
    {"numero": 501, "ville": "Lille", "montant": 34.90},
    {"numero": 502, "ville": "Nantes", "montant": 12.50},
    {"numero": 503, "ville": "Lille", "montant": 58.00},
]

premiere = commandes[0]
print("Nombre de lignes :", len(commandes))
print("Numéro de la première commande :", premiere["numero"])
print("Ville de la première commande :", premiere["ville"])

# Modifiez la dernière ligne pour afficher le montant de la deuxième commande.
print("Ville de la deuxième commande :", commandes[1]["ville"])

Les mêmes commandes, pas à pas

PythonCe que cela donneValeur
len(commandes)le nombre de lignes3
commandes[0]la première lignetoute la commande 501
commandes[0]["ville"]une valeur de la première ligneLille
commandes[2]["montant"]une valeur de la troisième ligne58.0

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une boucle et un if filtrent les lignes

Pour filtrer, on regarde chaque ligne à tour de rôle. C'est le travail de la boucle for.

Dans la boucle, un if teste la ligne. Si le test est vrai, append ajoute la ligne à une nouvelle liste.

À la fin de la boucle, la nouvelle liste ne contient que les lignes voulues. len les compte.

Garder les commandes de Lille

Code: python
commandes = [
    {"numero": 501, "ville": "Lille", "montant": 34.90},
    {"numero": 502, "ville": "Nantes", "montant": 12.50},
    {"numero": 503, "ville": "Lille", "montant": 58.00},
    {"numero": 504, "ville": "Rennes", "montant": 21.40},
    {"numero": 505, "ville": "Lille", "montant": 9.90},
]

# On garde les commandes qui passent le test, dans une nouvelle liste.
lille = []
for commande in commandes:
    if commande["ville"] == "Lille":
        lille.append(commande)

for commande in lille:
    print(commande["numero"], commande["montant"])
print("Commandes pour Lille :", len(lille))

# Changez le test pour garder les commandes de plus de 30 euros.

Une erreur fréquente

Attention

Beaucoup pensent qu'un filtre supprime les lignes refusées. Ce n'est pas le cas. La boucle remplit une nouvelle liste et la liste de départ garde toutes ses lignes. Vous pouvez donc filtrer les mêmes commandes avec un autre test.

À vous : les commandes d'une ville

Le service logistique prépare les tournées ville par ville. Il veut la liste des commandes d'une ville donnée. Écrivez une fonction qui filtre les commandes par ville. Des tests cachés vérifient votre réponse.

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.