Programmation dynamique à l’aide de dictionnaires

Effectué

Dans votre programme, vous souhaitez effectuer divers calculs, comme la somme du nombre de lunes. En outre, si vous utilisez une programmation plus avancée, vous pourrez constater que vous chargez ce type d’informations à partir de fichiers ou d’une base de données, au lieu de coder directement dans Python.

Pour prendre en charge ces scénarios, Python vous permet de traiter à la fois les clés et les valeurs d’un dictionnaire sous la forme d’une liste. Vous pouvez déterminer de façon dynamique les clés et les valeurs, et effectuer divers calculs.

Imaginons un dictionnaire qui stocke les volumes de précipitations mensuels. Il se peut que vous ayez des clés pour chaque mois et les précipitations associées. Vous souhaitez obtenir le volume total des précipitations. Toutefois, l’écriture du code pour effectuer cette opération à l’aide de chaque clé individuelle serait fastidieuse.

Récupérer toutes les clés et valeurs

La méthode keys() retourne un objet de liste qui contient toutes les clés. Vous pouvez utiliser cette méthode pour parcourir tous les éléments du dictionnaire.

Imaginons que vous disposiez du dictionnaire suivant, qui stocke les trois derniers mois de précipitations.

rainfall = {
    'october': 3.5,
    'november': 4.2,
    'december': 2.1
}

Supposons que vous souhaitiez afficher la liste de toutes les précipitations. Vous pouvez taper le nom de chaque mois, mais ce serait fastidieux.


for key in rainfall.keys():
    print(f'{key}: {rainfall[key]}cm')
october: 3.5cm
november: 4.2cm
december: 2.1cm

Notes

Vous pouvez toujours utiliser des crochets ([ ]) avec un nom de variable, plutôt que le littéral de chaîne codé en dur.

Déterminer si une clé se trouve dans un dictionnaire

Lorsque vous mettez à jour une valeur dans un dictionnaire, Python remplace la valeur existante ou en crée une nouvelle si la clé correspondante n’existe pas. Si vous souhaitez ajouter une valeur au lieu de la remplacer, vous pouvez vérifier si la clé existe à l’aide de in. Par exemple, si vous souhaitez ajouter une valeur au mois de décembre ou en créer une s’il n’y en a pas, vous pouvez utiliser ce qui suit :

if 'december' in rainfall:
    rainfall['december'] = rainfall['december'] + 1
else:
    rainfall['december'] = 1

# Because december exists, the value will be 3.1

Récupérer toutes les valeurs

Comme pour keys(), values() retourne la liste de toutes les valeurs d’un dictionnaire sans leurs clés respectives. values() peut être pratique quand vous utilisez la clé à des fins d’étiquetage, comme dans l’exemple précédent où les clés sont les noms des mois. Vous pouvez utiliser values() pour déterminer le volume total des précipitations :

total_rainfall = 0
for value in rainfall.values():
    total_rainfall = total_rainfall + value

print(f'There was {total_rainfall}cm in the last quarter.')
There was 10.8cm in the last quarter.