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?

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), ...].


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]

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()


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. ;-)


7

Pour Python 3, vous avez besoin de:

list_of_dict_values = list(dict_name.values())

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()


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])

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.


0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.