1
votes

Meilleur moyen d'obtenir des valeurs d'un dictionnaire imbriqué en python

Supposons que j'ai un dict:

[1, 2]

Comment puis-je lister les valeurs de toutes les clés de field ? Résultat attendu:

d = {'A': {'field': 1}, 'B': {'field': 2}}


0 commentaires

4 Réponses :


2
votes
[value['field'] for _, value in d.items() if 'field' in value]

0 commentaires

3
votes

Vous pouvez le faire en une seule ligne simplement avec une compréhension de liste comme ceci:

fields = [x["field"] for x in d.values() if 'field' in x.keys()]

J'espère que cela vous aidera :)


2 commentaires

Merci! Disons que j'ai un troisième élément, C qui ne contient pas de champ . Comment puis-je «ignorer» cela?


J'ai édité ma réponse pour qu'elle vérifie conditionnellement si elle existe. Si le champ n'existe pas, il l'ignorera simplement.



1
votes

Utilisez une compréhension de liste comme celle-ci:

>>> d
{'A': {'field': 1}, 'B': {'field': 2}}
>>> [d[e]['field'] for e in d]
[1, 2]


0 commentaires

1
votes

Si vous voulez un code plus clair et lisible que les one-liners:

d = {'A': {'field': 1}, 'B': {'field': 2}}
fields = d.values()
result = []
for val in fields:
  result.append(val['field'])

print(result)

Répliquer le lien


0 commentaires