Itérer (boucle) sur l'ensemble des clés et/ou valeurs d'un dictionnaire sous python

Active 14 novembre 2017    /    Viewed 16939    /    Comments 0    /    Edit


Considérons un simple dictionnaire (pour rappel un dictionnaire est constitué d'un ensemble de paires clé:valeur ) que l'on peut définir comme ceci:

>>> d = {'a':1,'b':2,'c':3}
>>> type(d)
<class 'dict'>

Pour itérer sur les clés du dictionnaire d, on peut alors procéder comme dans cet exemple:

>>> for key in d:
...     print(key)
... 
a
b
c

Dans ce dictionnaire il y a donc 3 clés: a, b et c. Si on veut maintenant itérer sur les clés et les valeurs associées du dictionnaire, il faut utiliser la méthode items() sous python 3 (ou iteritems() pour python 2), illustration:

>>> for key, value in d.items():
...     print(key,value)
... 
a 1
b 2
c 3
>>>

Pour des dictionnaires plus complexes avec des valeurs qui sont itérables comme un dictionnaire ou une liste par exemple il est aussi possible de créer une boucle qui affiche les données imbriquées, exemple:

>>> d = {'a':1,'b':2,'c':{'hello':1,'Bonjour':2}}
>>> for key, value in d.items():
...     if isinstance(value, dict):
...             for sub_key, sub_value in value.items():
...                     print(key,sub_key,sub_value)
...     else:
...             print(key,value)
... 
a 1
b 2
c hello 1
c Bonjour 2

Références

Liens Site
Iterating over dictionaries using 'for' loops stackoverflow
Python dictionary items() Method tutorialspoint.com
What is the difference between dict.items() and dict.iteritems()? stackoverflow
How to check if type of a variable is string? stackoverflow
Loop through all nested dictionary values? stackoverflow


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!