Ho una lista di dizionari e voglio che ogni voce sia ordinata in base ai valori di una specifica proprietà.
Prendi in considerazione l'array qui sotto,
[{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]
Quando è ordinato per nome
, dovrebbe diventare
[{'name':'Bart', 'age':10}, {'name':'Homer', 'age':39}]
my_list = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]
my_list.sort(lambda x,y : cmp(x['name'], y['name']))
my_list
sarà ora quello che vuoi.
(3 anni dopo) Modificato per aggiungere:
Il nuovo argomento key
è più efficiente e ordinato. Una risposta migliore ora assomiglia a:
my_list = sorted(my_list, key=lambda k: k['name'])
...il lambda è, IMO, più facile da capire di operator.itemgetter
, ma YMMV.