Obtener una lista de valores a partir de una lista de dicts
Tengo una lista de dictos así:
[{'value': 'apple', 'blah': 2},
{'value': 'banana', 'blah': 3} ,
{'value': 'cars', 'blah': 4}]
Quiero ['manzana', 'plátano', 'coches']
.
¿Cuál es la mejor manera de hacerlo?
145
3
Asumiendo que cada dict tiene una clave
value
, puedes escribir (asumiendo que tu lista se llamal
)Si falta
value
, puedes usarHe aquí otra forma de hacerlo utilizando map() y funciones lambda:
donde l es la lista. Veo esta forma "más sexy", pero yo lo haría utilizando la comprensión de la lista.
Actualización: En caso de que 'valor' pudiera faltar como clave uso:
Actualización: Yo tampoco soy muy fan de las lambdas, prefiero nombrar las cosas... así es como lo haría yo teniendo eso en cuenta:
Incluso iría más allá y crearía una única función que dijera explícitamente lo que quiero conseguir:
Con Python 3, como
map
devuelve un iterador, usalist
para devolver una lista, por ejemplolist(map(operator.itemgetter('value'), l))
.