Supposons que je dispose de la liste suivante :
list = [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}]
Comment accéder à une valeur particulière de la clé ? d
?
Supposons que je dispose de la liste suivante :
list = [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}]
Comment accéder à une valeur particulière de la clé ? d
?
Tout d'abord, n'utilisez pas 'list' comme nom de variable.
Si vous avez des dictionnaires simples avec des clés uniques, vous pouvez procéder comme suit (notez qu'un nouvel objet dictionnaire contenant tous les éléments des sous-dictionnaires sera créé) :
res = {}
for line in listOfDicts:
res.update(line)
res['d']
>>> 4
Autrement :
getValues = lambda key,inputData: [subVal[key] for subVal in inputData if key in subVal]
getValues('d', listOfDicts)
>>> [4]
Ou très basique :
def get_value(listOfDicts, key):
for subVal in listOfDicts:
if key in subVal:
return subVal[key]
Vous n'avez pas fourni suffisamment de contexte pour fournir une réponse précise (c'est-à-dire comment voulez-vous gérer des clés identiques dans des dicts multiples ?)
Une réponse est d'itérer la liste, et d'essayer d'obtenir 'd'.
mylist = [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}]
myvalues = [i['d'] for i in mylist if 'd' in i]
Une autre solution consiste à accéder directement au dict (par l'index de la liste), mais il faut savoir que la clé est présente.
mylist[1]['d']
Si vous savez quel dict
dans la liste a la clé que vous recherchez, alors vous avez déjà la solution (telle que présentée par Matt et Ignacio). Toutefois, si vous ne savez pas quel dictateur possède cette clé, vous pouvez procéder comme suit :
def getValueOf(k, L):
for d in L:
if k in d:
return d[k]
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.