Comment puis-je extraire toutes les valeurs d'un dictionnaire en Python?

177

J'ai un dictionnaire d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}.

Comment extraire toutes les valeurs de ddans une liste l?

Naveen C.
la source

Réponses:

338

Si vous avez seulement besoin des clés de dictionnaire 1, 2, et 3utilisation: your_dict.keys().

Si vous avez seulement besoin des valeurs du dictionnaire -0.3246, -0.9185et -3985utilisation: your_dict.values().

Si vous voulez à la fois des clés et des valeurs, utilisez: your_dict.items()qui renvoie une liste de tuples [(key1, value1), (key2, value2), ...].

Pierre Bourdon
la source
64
Si vous utilisez Python 3, vous voudrez l'utiliser list(your_dict.values())pour obtenir une liste (et non un objet dict_values).
Matthias Braun
40

Utilisation values()

>>> d = {1:-0.3246, 2:-0.9185, 3:-3985}

>>> d.values()
<<< [-0.3246, -0.9185, -3985]
Zeekay
la source
16

Si vous voulez toutes les valeurs, utilisez ceci:

dict_name_goes_here.values()

Si vous voulez toutes les clés, utilisez ceci:

dict_name_goes_here.keys()

SI vous voulez tous les éléments (à la fois les clés et les valeurs), j'utiliserais ceci:

dict_name_goes_here.items()
Tyler Crompton
la source
12

Appelez la values()méthode sur le dict.

David Heffernan
la source
9

Pour les dictionnaires imbriqués, les listes de dictionnaires et les dictionnaires répertoriés, vous pouvez utiliser

def get_all_values(d):
    if isinstance(d, dict):
        for v in d.values():
            yield from get_all_values(v)
    elif isinstance(d, list):
        for v in d:
            yield from get_all_values(v)
    else:
        yield d 

Un exemple:

d = {'a': 1, 'b': {'c': 2, 'd': [3, 4]}, 'e': [{'f': 5}, {'g': 6}]}

list(get_all_values(d)) # returns [1, 2, 3, 4, 5, 6]

PS: j'adore yield. ;-)

Michael Dorner
la source
7

Pour Python 3, vous avez besoin de:

list_of_dict_values = list(dict_name.values())
Faaiz Qadri
la source
Merci d'avoir mentionné que cette méthode list()est nécessaire
Md. Sabbir Ahmed
5

Si vous voulez toutes les valeurs, utilisez ceci:

dict_name_goes_here.values()
Govind Sagar
la source
3
d = <dict>
values = d.values()
Gabriel Ross
la source
3

Pour voir les clés:

for key in d.keys():
    print(key)

Pour obtenir les valeurs auxquelles chaque clé fait référence:

for key in d.keys():
    print(d[key])

Ajouter à une liste:

for key in d.keys():
    mylist.append(d[key])
Ulysse Ithaque
la source
la compréhension de liste peut également aider
DeafaltCoder
list = [d [key] for key in d.keys ()]
DeafaltCoder
0

Le typage du canard pythonique devrait en principe déterminer ce qu'un objet peut faire, c'est-à-dire ses propriétés et ses méthodes. En regardant un objet dictionnaire, on peut essayer de deviner qu'il possède au moins l'un des éléments suivants: dict.keys()ou dict.values()méthodes. Vous devriez essayer d'utiliser cette approche pour de futurs travaux avec les langages de programmation dont la vérification de type se produit au moment de l'exécution, en particulier ceux avec la nature de type canard.

dr_dronych
la source
0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
Shriyans
la source