Supongamos que tengo la siguiente lista:¿Cómo acceder a un valor clave del diccionario presente dentro de una lista?
list = [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}]
¿Cómo accedo a un determinado valor de clave digo d
?
Supongamos que tengo la siguiente lista:¿Cómo acceder a un valor clave del diccionario presente dentro de una lista?
list = [{'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6}]
¿Cómo accedo a un determinado valor de clave digo d
?
Indice la lista y luego el dict.
print L[1]['d']
Usted no ha proporcionado suficiente contexto para proporcionar una respuesta precisa (es decir, ¿cómo quiere gestionar claves idénticas en múltiples predice?)
Una respuesta es iterar la lista, y tratar de conseguir '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]
Otra respuesta es acceder a la dict directamente (por el índice de la lista), aunque hay que saber que la clave está presente
mylist[1]['d']
gracias señor .. – Vinodh
@raja: No hay necesidad de agradecerme, y especialmente no es necesario que me llame señor! :) Recuerde votar las respuestas que considere útiles. –
Si sabe qué dict
en la lista tiene la llave que está buscando, entonces ya tiene la solución (presentada por Matt e Ignacio). Sin embargo, si usted no sabe lo que tiene dict esta tecla, entonces se podría hacer esto:
def getValueOf(k, L):
for d in L:
if k in d:
return d[k]
Corregir 'si k entra en d:' a 'si k en d:' –
@Artsiom: Buena captura – inspectorG4dget
de nada –
En primer lugar no utilice 'lista' como nombre de la variable.
Si tiene diccionarios simples con claves únicas a continuación, puede hacer lo siguiente (nótese que se creará nuevo objeto diccionario con todos los elementos de sub-diccionarios):
res = {}
for line in listOfDicts:
res.update(line)
res['d']
>>> 4
lo contrario:
getValues = lambda key,inputData: [subVal[key] for subVal in inputData if key in subVal]
getValues('d', listOfDicts)
>>> [4]
o muy Base:
def get_value(listOfDicts, key):
for subVal in listOfDicts:
if key in subVal:
return subVal[key]
de nada, raja –
¿Y por qué downvote? ¿Estoy haciendo algo mal? –
+1 para "' no use 'list' como nombre de variable' " –
¿Qué pasa con 'lista [1] [ 'd']'? –