मैं फ़िल्टर w / lambda का एक बड़ा प्रशंसक रहा हूं, लेकिन समय की जटिलता पर विचार करें तो यह सबसे अच्छा विकल्प नहीं है
पहला विकल्प
sorted_list = sorted(list_to_sort, key= lambda x: x['name'])
# returns list of values
दूसरा विकल्प
list_to_sort.sort(key=operator.itemgetter('name'))
#edits the list, does not return a new list
निष्पादन समय की तेज तुलना
# First option
python3.6 -m timeit -s "list_to_sort = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}, {'name':'Faaa', 'age':57}, {'name':'Errr', 'age':20}]" -s "sorted_l=[]" "sorted_l = sorted(list_to_sort, key=lambda e: e['name'])"
1000000 छोरों, 3 का सबसे अच्छा: 0.736 usec प्रति पाश
# Second option
python3.6 -m timeit -s "list_to_sort = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}, {'name':'Faaa', 'age':57}, {'name':'Errr', 'age':20}]" -s "sorted_l=[]" -s "import operator" "list_to_sort.sort(key=operator.itemgetter('name'))"
1000000 लूप, 3 का सर्वश्रेष्ठ: 0.438 usec प्रति लूप
[{'name':'Bart', 'age':10, 'note':3},{'name':'Homer','age':10,'note':2},{'name':'Vasile','age':20,'note':3}]
और उपयोग करने के लिए:from operator import itemgetter newlist = sorted(old_list, key=itemgetter(-'note','name')
EDIT: परीक्षण किया गया है, और यह काम कर रहा है, लेकिन मैं इसे DES DES और ASC का नाम नोट करना नहीं जानता।