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
achatsa 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
prixa 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 itemsle 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_dictionnairelist(mon_dictionnaire.values())permet d'obtenir une liste des valeurs demon_dictionnairelist(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
TrueFalseUne erreurRien
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.keysfor 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
TrueFalseUne erreurRien
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.valuesfor 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
TrueFalseUne erreurRien
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_gastonIl ne faut pas oublier les parenthĂšses.for paire in ferme_gaston.itemsfor 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_dictionnairemon_dictionnaire.values()permet de parcourir toutes les valeurs demon_dictionnairemon_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)