Le coach ne veut pas tout lire
Le club de foot du lycée a sept joueurs dans une table. Le coach demande : « Qui sont les attaquants ? Qui a marqué au moins 5 buts ? »
Il ne veut pas relire toute la table. Il veut seulement les lignes qui l’intéressent.
Dans cette leçon, tu apprends à choisir des lignes, puis des colonnes.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Filtrer | Garder seulement les lignes qui répondent à une condition. | Seulement les attaquants |
| Condition | Une question dont la réponse est vrai ou faux. | joueur["buts"] >= 5 |
| Enregistrement | Une ligne de la table, écrite comme un dictionnaire. | {"nom": "Léa", "buts": 9} |
| Champ | Une case d’un enregistrement. On l’appelle par son nom. | joueur["nom"] |
| Projeter | Garder seulement certaines colonnes. | Seulement les noms |
| Liste vide | Une liste sans rien dedans. Elle s’écrit []. | Aucun joueur ne répond |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Filtrer : parcourir, tester, garder
Pour filtrer, on fait trois gestes. On prend chaque ligne. On teste la condition. Si elle est vraie, on garde la ligne.
On garde avec append dans une nouvelle liste, qui commence vide.
Chaque ligne est un enregistrement. On lit un champ avec son nom : joueur["poste"].
À toi : garder les attaquants
joueurs = [
{"nom": "Léa", "poste": "attaquant", "age": 17, "buts": 9},
{"nom": "Karim", "poste": "défenseur", "age": 16, "buts": 1},
{"nom": "Sofia", "poste": "attaquant", "age": 18, "buts": 12},
{"nom": "Hugo", "poste": "gardien", "age": 17, "buts": 0},
{"nom": "Inès", "poste": "milieu", "age": 16, "buts": 4},
{"nom": "Tom", "poste": "attaquant", "age": 18, "buts": 2},
{"nom": "Nina", "poste": "milieu", "age": 17, "buts": 6},
]
attaquants = []
for joueur in joueurs:
if joueur["poste"] == "attaquant":
attaquants.append(joueur)
print(len(attaquants), "attaquants :")
for joueur in attaquants:
print(joueur["nom"], joueur["buts"])
# Garde les milieux à la place.
Exemple travaillé : les attaquants
| Joueur | Poste | Poste = attaquant ? | Gardé ? |
|---|---|---|---|
| Léa | attaquant | Vrai | Oui |
| Karim | défenseur | Faux | Non |
| Sofia | attaquant | Vrai | Oui |
| Hugo | gardien | Faux | Non |
| Inès | milieu | Faux | Non |
| Tom | attaquant | Vrai | Oui |
| Nina | milieu | Faux | Non |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une condition, ou deux
Une condition peut comparer un nombre : joueur["buts"] >= 5 veut dire au moins 5 buts.
On peut en réunir deux. Avec and, les deux doivent être vraies. Avec or, une seule suffit.
Pour deux conditions avec and, on obtient moins de lignes. Avec or, on en obtient plus.
À toi : deux conditions
joueurs = [
{"nom": "Léa", "poste": "attaquant", "age": 17, "buts": 9},
{"nom": "Karim", "poste": "défenseur", "age": 16, "buts": 1},
{"nom": "Sofia", "poste": "attaquant", "age": 18, "buts": 12},
{"nom": "Hugo", "poste": "gardien", "age": 17, "buts": 0},
{"nom": "Inès", "poste": "milieu", "age": 16, "buts": 4},
{"nom": "Tom", "poste": "attaquant", "age": 18, "buts": 2},
{"nom": "Nina", "poste": "milieu", "age": 17, "buts": 6},
]
buteurs = []
for joueur in joueurs:
if joueur["buts"] >= 5:
buteurs.append(joueur["nom"])
print("Au moins 5 buts :", buteurs)
for joueur in joueurs:
if joueur["poste"] == "attaquant" and joueur["age"] == 18:
print(joueur["nom"], "est attaquant et a 18 ans")
# Remplace and par or et compte les lignes.
Exemple travaillé : et, ou
| Joueur | Attaquant ? | 5 buts ou plus ? | Les deux (and) | Au moins un (or) |
|---|---|---|---|---|
| Léa | Oui | Oui | Oui | Oui |
| Karim | Non | Non | Non | Non |
| Sofia | Oui | Oui | Oui | Oui |
| Hugo | Non | Non | Non | Non |
| Inès | Non | Non | Non | Non |
| Tom | Oui | Non | Non | Oui |
| Nina | Non | Oui | Non | Oui |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Contrôle rapide
À toi de jouer
Contrôle rapide
4 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.