¿Obtener una lista de valores de una lista de diccionarios?

Tengo una lista de diccionarios, y necesito obtener una lista de los valores de una clave dada del diccionario (todos los diccionarios tienen la misma clave).

Por ejemplo, tengo:

l = [ { "key": 1, "Val1": 'val1 from element 1', "Val2": 'val2 from element 1' }, 
      { "key": 2, "Val1": 'val1 from element 2', "Val2": 'val2 from element 2' }, 
      { "key": 3, "Val1": 'val1 from element 3', "Val2": 'val2 from element 3' } ]

Necesito obtener 1, 2, 3.

Por supuesto, puedo conseguirlo con:

v=[]
for i in l:
    v.append(i['key'])

Pero me gustaría obtener una mejor manera de hacerlo.

Respuestas:1 Respuesta 1
Tiempo:hace 8 años, 1 mes
Última modificación:hace 3 años, 2 meses

Solución

Usando una comprensión de lista simple (si está seguro de que cada diccionario tiene la clave):

In [10]: [d['key'] for d in l]
Out[10]: [1, 2, 3]

De lo contrario, primero deberá verificar la existencia:

In [11]: [d['key'] for d in l if 'key' in d]
Out[11]: [1, 2, 3]

Otras respuestas

Deja un comentario