Turiu žodynų sąrašą ir noriu, kad kiekvienas elementas būtų surūšiuotas pagal tam tikras savybių reikšmes.
Atsižvelkite į toliau pateiktą masyvą,
[{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]
surūšiuotas pagal Vardas
, turėtų tapti
[{'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
dabar bus toks, kokio norite.
(po 3 metų) Redaguota ir pridėta:
Naujasis argumentas key
yra efektyvesnis ir tvarkingesnis. Geresnis atsakymas dabar atrodo taip:
my_list = sorted(my_list, key=lambda k: k['name'])
...lambda, IMO, yra lengviau suprantama nei operator.itemgetter
, bet YMMV.