J'ai un dictionnaire d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}
.
Comment extraire toutes les valeurs de d
dans une liste l
?
Si vous avez seulement besoin des clés de dictionnaire 1
, 2
et 3
, utilisez: your_dict.keys()
.
Si vous n'avez besoin que des valeurs de dictionnaire -0.3246
, -0.9185
et -3985
, utilisez: your_dict.values()
.
Si vous voulez les deux clés et les valeurs, utilisez: your_dict.items()
qui retourne une liste de tuples [(key1, value1), (key2, value2), ...]
.
Utiliser values()
>>> d = {1:-0.3246, 2:-0.9185, 3:-3985}
>>> d.values()
<<< [-0.3246, -0.9185, -3985]
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 (clés et valeurs), je voudrais utiliser ceci:
dict_name_goes_here.items()
Appelez la méthode values()
sur le dict.
Si vous voulez toutes les valeurs, utilisez ceci:
dict_name_goes_here.values()
Pour voir les clés:
for key in d.keys():
print(key)
Pour obtenir les valeurs que chaque clé référence, procédez comme suit:
for key in d.keys():
print(d[key])
Ajouter à une liste:
for key in d.keys():
mylist.append(d[key])
d = <dict>
values = d.values()
Pour les dict imbriqués, les listes de dict et les dict de dict listé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'aime yield
. ;-)
Le typage de canard Pythonic 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 du dictionnaire, on peut essayer de deviner qu'il a au moins l'une des méthodes suivantes: dict.keys()
ou dict.values()
méthodes. Vous devriez essayer d'utiliser cette approche pour les travaux futurs avec les langages de programmation dont la vérification de type a lieu au moment de l'exécution, en particulier ceux qui ont la nature de type "canard".