Ecco un altro modo per farlo usando le funzioni map() e lambda:
>>> map(lambda d: d['value'], l)
dove l è la lista. Vedo in questo modo "più sexy", ma lo farei usando la comprensione delle liste.
Aggiornamento: Nel caso in cui 'valore' potrebbe essere mancante come un uso chiave:
>>> map(lambda d: d.get('value', 'default value'), l)
Update: Io non sono un grande fan di lambda, preferisco chiamare le cose ... questo è come lo farei con questo in mente:
>>> import operator
>>> map(operator.itemgetter('value'), l)
vorrei anche andare oltre e creare una sola funzione che dice esplicitamente ciò che voglio raggiungere:
>>> import operator, functools
>>> get_values = functools.partial(map, operator.itemgetter('value'))
>>> get_values(l)
... [<list of values>]
fonte
2011-09-01 14:12:33
1) Che cosa hai provato? Per favore includi il tuo codice. 2) "migliore" è una parola priva di significato in questo contesto: la migliore potrebbe significare la più veloce, la meno memoria o la maggior parte dell'uso di prodotti con licenza Oracle. Non sappiamo cosa intendi per "migliore". E non possiamo commentare il codice che non hai pubblicato. –
Forse voleva solo chiedere qual è il modo "pythonic" per farlo –
Mr @ S.Lott, ci sono così tante domande su SO che non hanno codice, ma hanno risposte, risposte meravigliose, se non vuoi per pubblicare una risposta perché xoy, ignora semplicemente questo post e basta. : v Molti anni fa. –