Parcours
I. Parcourir un dictionnaireâïž
Testez
Utilisons la mĂȘme syntaxe que celle employĂ©e avec les listes python :
Question
Nous disposons du dictionnaire : mon_dictionnaire
.
Le parcours avec la boucle for element in mon_dictionnaire
se fait :
- sur les clés du dictionnaire.
- sur les valeurs du dictionnaire.
- sur les paires clé, valeur du dictionnaire.
- sur les indices du dictionnaires
- sur les clés du dictionnaire.
-
sur les valeurs du dictionnaire. -
sur les paires clé, valeur du dictionnaire. -
sur les indices du dictionnairesIl n'y a pas d'"indices" pour des dictionnaires
đ Ă retenir
Soit le dictionnaire mon_dictionnaire
Le parcours d'un dictionnaire se fait sur ses clés en écrivant :
Gaston fait ses courses
Gaston va faire ses courses dans une boutique "prix ronds". Mais comme il est passionné de Python, il a créé un dictionnaire pour représenter ses achats appelé achats
et un autre pour représenter le prix de chaque article appelé prix
.
Exemple pour l'achat d'un kg de farine,d'une plaquette de beurre, et d'un kg de sucre.
Il connait les prix suivants :
produit | 1kg de farine | 1 kg de sucre | 1 l de lait | 1 plaquette de beurre |
---|---|---|---|---|
prix | 1 | 3 | 2 | 2 |
Voici par exemple les dictionnaires :
achats = {"farine": 2, "beurre": 1, "sucre": 2}
prix = {"farine": 1, "sucre": 3, "lait": 2, "beurre": 2}
- Le dictionnaire
achats
a pour clés les ingrédients et pour valeur le nombre d'ingrédients correspondants achetés.
Ici Gaston achĂšte 2kg de farine, 1 plaquette de beurre, 2 kgs de sucre. - Le dictionnaire
prix
a pour clés les ingrédients et pour valeur le prix de chacun.
Ici 1kg de farine coĂ»te 1 âŹ, 1kg de sucre coĂ»te 3 ⏠etc.
Aidez Gaston à compléter la fonction facture
qui prend en paramĂštres les deux dictionnaires, et renvoie le montant qu'il devra payer pour ses achats. Les valeurs du dictionnaire prix
sont des entiers.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
II. Obtenir toutes les valeurs d'un dictionnaireâïž
Les notes d'Alice
Alice a créé un dictionnaire avec ses notes de NSI.
Par exemple notes_Alice = {"test_1": 14, "test_2": 16, "test_3": 18}
Aidez-là à compléter la fonction qui renvoie une liste des notes qu'elle a obtenues
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
đ Ă retenir
Soit le dictionnaire mon_dictionnaire
on peut obtenir une liste valeurs
de toutes les valeurs de ce dictionnaire ainsi :
Attention
đ” đ” Tester ci-dessous
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
đ Il faut se souvenir qu'un dictionnaire n'est pas ordonnĂ© ...
III. Obtenir tous les couples (clĂ©, valeur) d'un dictionnaireâïž
Les notes d'Alice
Alice a créé un dictionnaire avec ses notes de NSI.
Par exemple notes_Alice = {"test_1": 14, "test_2": 16, "test_3": 18}
Aidez-là à compléter la fonction qui renvoie une liste de tuples (devoir, note).
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
đ Ă retenir
Soit le dictionnaire mon_dictionnaire
on peut obtenir une liste des couples (clé, valeur) de ce dictionnaire ainsi :
Attention
đ” đ” Tester ci-dessous
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
đ Il faut se souvenir qu'un dictionnaire n'est pas ordonnĂ© ...
IV. Présentation des trois méthodes keys
, values
et items
âïž
Attention
Les objets renvoyĂ©s par les mĂ©thodes keys, values, items sont dâun type particulier,leur connaissance nâest pas au programme. Par contre les mĂ©thodes keys
, values
et items
le sont.
đ Remarquons nĂ©anmoins que l'on peut toujours se passer de ces mĂ©thodes.
Testez
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Les vues
đ” En fait, les objets renvoyĂ©s par les mĂ©thodes keys
, values
et items
sont des objets que l'on appelle des "vues".
đ Testez ci-dessous et observez ce qui est renvoyĂ©.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
transformer des vues en listes Python
đ Testez ci-dessous et observez ce qui est renvoyĂ©.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
obtenir des listes de clés, valeurs, couples (clé, valeur)
On peut créer les listes de clés, de valeurs ou de couples (clé, valeur) :
Soit le dictionnaire mon_dictionnaire
list(mon_dictionnaire.keys())
permet d'obtenir une liste des clés demon_dictionnaire
list(mon_dictionnaire.values())
permet d'obtenir une liste des valeurs demon_dictionnaire
list(mon_dictionnaire.items())
permet d'obtenir une liste des tuples (clé, valeur) demon_dictionnaire
V. La méthode keys
âïž
Testez
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Ne connaissez-vous pas une autre façon de procéder ?
Nous aurions pu tout simplement Ă©crire
Testez
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Parcourir avec la méthode keys
Testez ci-dessous
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
đ Ă retenir
Soit le dictionnaire mon_dictionnaire
mon_dictionnaire.keys()
permet de parcourir toutes les clés de mon_dictionnaire
Question
ferme_gaston = {"lapin": 5, "vache": 7, "cochon": 2, "cheval": 4}
Que renvoie l'expression "cheval" in ferme_gaston.keys()
?
-
True
-
False
- Une erreur
- Rien
-
True
-
False
-
Une erreur -
Rien
Question
ferme_gaston = {"lapin": 5, "vache": 7, "cochon": 2, "cheval": 4}
Quelle instruction permet de parcourir les clés de ferme_gaston
?
-
for cle in range(ferme_gaston)
-
for cle in ferme_gaston.keys
-
for cle in ferme_gaston.keys()
-
for cle in keys.ferme_gaston()
-
for cle in ferme_gaston
-
for cle in range(ferme_gaston)
-
Il ne faut pas oublier les parenthĂšses.for cle in ferme_gaston.keys
-
for cle in ferme_gaston.keys()
-
for cle in keys.ferme_gaston()
-
for cle in ferme_gaston
VI. La méthode values
âïž
Testez
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Parcourir avec la méthode values
Testez ci-dessous
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
đ Ă retenir
Soit le dictionnaire mon_dictionnaire
mon_dictionnaire.values()
permet d'accéder à toutes les valeurs de mon_dictionnaire
Question
couleurs = {"white": "blanc", "black": "noir", "red": "rouge"}
Que renvoie l'expression "vert" in couleurs.values()
?
-
True
-
False
- Une erreur
- Rien
-
True
-
False
-
Une erreur -
Rien
Question
pokemons = {"SalamĂšche" : "Feu", "Reptincel": "Feu",
"Carapuce": "Eau", "Chenipan": "Insecte"}
Quelle instruction permet de parcourir les types des pokémons de ce dictionnaire ?
-
for type_pokemon in range(pokemons)
-
for type_pokemon in pokemons.values()
-
for type_pokemon in pokemons.values
-
for type_pokemon in values.pokemons()
-
for type_pokemon in pokemons
-
for type_pokemon in range(pokemons)
-
for type_pokemon in pokemons.values()
-
Il ne faut pas oublier les parenthĂšses.for type_pokemon in pokemons.values
-
for type_pokemon in values.pokemons()
-
Cette instruction parcourt les clésfor type_pokemon in pokemons
utiliser la méthode values
Bob a constitué un dictionnaire de recettes de la façon suivante : les clés sont les noms des gùteaux, et les valeurs les listes de ingrédients pour chaque gùteau.
Aidez-le à écrire la fonction Python qui prend en paramÚtres un dictionnaire des recettes, un ingrédient, et qui renvoie le nombre de recettes utilisant cet ingrédient.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
VII. La méthode items
âïž
Testez
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Parcourir avec la méthode items
Testez ci-dessous
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
đ Ă retenir
Soit le dictionnaire mon_dictionnaire
mon_dictionnaire.items()
permet d'accéder à tous les tuples (clé, valeur) de mon_dictionnaire
Question
ferme_gaston = {"lapin": 5, "vache": 7, "cochon": 2, "cheval": 4}
Que renvoie l'expression ("dragon", 2) in ferme_gaston.items()
?
-
True
-
False
- Une erreur
- Rien
-
True
-
False
-
Une erreur -
Rien
Question
ferme_gaston = {"lapin": 5, "vache": 7, "cochon": 2, "cheval": 4}
Quelle instruction permet de parcourir les tuples (animal, effectif) de ferme_gaston
?
-
for paire in range(ferme_gaston)
-
for paire in items.ferme_gaston
-
for paire in ferme_gaston.items
-
for paire in ferme_gaston.items()
-
for paire in range(ferme_gaston)
-
for paire in items.ferme_gaston
-
Il ne faut pas oublier les parenthĂšses.for paire in ferme_gaston.items
-
for paire in ferme_gaston.items()
utiliser la méthode items
"Testez"
Alice est étourdie, elle ne se souvient plus à quel devoir elle a obtenu la note "18". Compléter ci-dessous :
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Utiliser les méthodes keys
, values
et items
On peut parcourir les vues créées par ces méthodes, de façon analogue à ce que l'on ferait avec d'autres séquences comme des listes :
Soit le dictionnaire mon_dictionnaire
mon_dictionnaire.keys()
permet de parcourir toutes les clés demon_dictionnaire
mon_dictionnaire.values()
permet de parcourir toutes les valeurs demon_dictionnaire
mon_dictionnaire.items()
permet de parcourir tous les couples (clé, valeur) demon_dictionnaire
VIII. QCM finalâïž
Question
On considĂšre le dictionnairesymboles_hexa = {"A": 10, "B": 11, "C": 12, "D": 13, "E":14, "F":15}
Que peut afficher print(list(symboles_hexa.items()))
?
-
["A", "B", "C", "D", "E", "F"]
-
[10, 11, 12, 13, 14, 15]
-
[(10,"A"), (11, "B") ,(12, "C"), (13, "D"), (14, "E"), (15, "F")]
-
[("A": 10), ("B": 11), ("C": 12), ("D": 13), ("E": 14), ("F": 15)]
-
[("A", 10), ("B", 11), ("C", 12), ("D", 13), ("E", 14), ("F", 15)]
-
["A", "B", "C", "D", "E", "F"]
-
[10, 11, 12, 13, 14, 15]
-
[(10,"A"), (11, "B") ,(12, "C"), (13, "D"), (14, "E"), (15, "F")]
-
[("A": 10), ("B": 11), ("C": 12), ("D": 13), ("E": 14), ("F": 15)]
-
[("A", 10), ("B", 11), ("C", 12), ("D", 13), ("E", 14), ("F", 15)]
Liquidation
Que peut-il s'afficher si l'on exécute le script suivant :
stock = {"kiwis": 2, "pommes": 10, "bananes": 6, "noix": 4}
for (fruit, nombre) in stock.items():
if nombre < 5:
stock[fruit] = 0
print(stock)
-
{"pommes": 10, "kiwis": 0, "bananes": 6, "noix": 0}
-
{"kiwis": 0, "pommes": 10, "bananes": 6, "noix": 0}
-
{"0": 2, "pommes": 10, "bananes": 6, "0": 4}
-
{"kiwis": 2, "pommes": 10, "bananes": 6, "noix": 4}
-
{"pommes": 10, "kiwis": 0, "bananes": 6, "noix": 0}
Il n'y a pas d'ordre pour Ă©crire un dictionnaire. -
{"kiwis": 0, "pommes": 10, "bananes": 6, "noix": 0}
-
{"0": 2, "pommes": 10, "bananes": 6, "0": 4}
-
Il faut modifier les valeurs strictement inférieures à 5 en 0.{"kiwis": 2, "pommes": 10, "bananes": 6, "noix": 4}
Question
couleurs = {"white": "blanc", "black": "noir", "red": "rouge"}
Que renvoie l'expression couleurs[0]
?
-
"white"
-
"blanc"
- Une erreur
-
"white"
-
"blanc"
- Une erreur. On accÚde à une valeur avec la clé
Question
couleurs = {"white": "blanc", "black": "noir", "red": "rouge"}
Quelle instruction faut-il Ă©crire pour modifier ce dictionnaire et obtenir :
couleurs = {"white": "blanc", "black": "noir", "red": "rouge, "green": "vert"}
-
couleurs["green"] = "vert"
-
couleurs.append("green", "vert")
- Ce n'est pas possible
-
couleurs["green"] = "vert"
-
couleurs.append("green", "vert")
-
Ce n'est pas possible
Question
stock = {"kiwis": 2, "pommes": 10, "bananes": 6, "noix": 4}
Quelle est l'instruction qui permet d'afficher le plus grand nombre de fruits d'une variété ?
-
print(max(stock))
-
print(max(stock.values()))
-
print(max(stock.values))
-
print(max([stock[fruit] for fruit in stock]))
-
print(max(stock))
-
print(max(stock.values()))
-
Ne pas oublier les parenthĂšsesprint(max(stock.values))
-
print(max([stock[fruit] for fruit in stock]))
đ Si vous avez bien rĂ©ussi ces QCM, vous pouvez passer aux exercices dans la section suivante ...
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)