Salut, j'ai le dictionnaire ci-dessous qui a une valeur avec une liste, et à l'intérieur de la liste est un dictionnaire. Est-il possible d'appeler la valeur du dictionnaire à l'intérieur de la liste en utilisant la clé au lieu de l'index de la liste? Le dictionnaire à l'intérieur de la liste peut varier, de sorte que la valeur d'index peut ne pas toujours fournir la bonne paire clé/valeur. Mais si je peux utiliser la clé, je peux toujours obtenir la valeur correcte.
mylist = {'mydict': [{'A': 'Letter A'}, {'B': 'Letter C'}, {'C': 'Letter C'}]}
print(mylist['mydict'][0]['A'])
Sortie de courant:
Letter A
Requête souhaitée:
print(mylist['mydict']['A'])
Letter A
Pour le moment, vous avez 3 dictionnaires dans une liste dans un dictionnaire. Essayez le ci-dessous à la place:
my_nested_dictionary = {'mydict': {'A': 'Letter A', 'B': 'Letter C', 'C': 'Letter C'}}
print(my_nested_dictionary['mydict']['A'])
Regardez le code ci-dessous:
>>> mylist = {'mydict': [{'A': 'Letter A'}, {'B': 'Letter C'}, {'C': 'Letter C'}]}
>>> for dictionary in mylist['mydict']:
... try:
... dictionary['A']
... except KeyError:
... pass
...
'Letter A'
Vous parcourez un dictionnaire dans votre liste, puis essayez d'appeler votre clé A
. Vous attrapez KeyError
car la clé du dictionnaire peut être absente.
Essayez le code suivant pour générer le nouveau dict.
mylist = {'mydict': [{'A': 'Letter A'}, {'B': 'Letter C'}, {'C': 'Letter C'}]}
newDict={}
for item in mylist['mydict']:
newDict.update(item)
mylist['mydict']=newDict
print(mylist['mydict']['A'])
Que diriez-vous d'utiliser un générateur?
item = next(item['A'] for item in mylist['mydict'] if 'A' in item)
Ceci n'est possible que si vos données d'origine sont formatées comme suit:
mylist = {'mydict': {'A': 'Letter A','B': 'Letter C','C': 'Letter C'}}
donc sans la liste intégrée - ce qui ne semble pas ajouter une structure significative?