如何根据Python中字典的值对字典列表进行排序?
我收到了一个字典列表,并希望按字典的值进行排序。
这个
[{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]
按名称排序,应该成为
[{'name':'Bart', 'age':10}, {'name':'Homer', 'age':39}]
它可能看起来更清洁使用一个键,而不是一个cmp:
newlist = sorted(list_to_be_sorted, key=lambda k: k['name'])
或者像JFSebastian和其他人所建议的那样,
from operator import itemgetter
newlist = sorted(list_to_be_sorted, key=itemgetter('name'))
为了完整性(正如fitzgeraldsteele的评论中指出的那样),添加reverse=True
来降序排序
newlist = sorted(l, key=itemgetter('name'), reverse=True)
import operator
按键='名称'对字典列表进行排序:
list_of_dicts.sort(key=operator.itemgetter('name'))
按键='年龄'对字典列表进行排序:
list_of_dicts.sort(key=operator.itemgetter('age'))
如果您想通过多个键对列表进行排序,您可以执行以下操作:
my_list = [{'name':'Homer', 'age':39}, {'name':'Milhouse', 'age':10}, {'name':'Bart', 'age':10} ]
sortedlist = sorted(my_list , key=lambda elem: "%02d %s" % (elem['age'], elem['name']))
这很冒险,因为它依赖于将值转换为单个字符串表示形式进行比较,但它对包含负数的数字的预期效果(尽管如果使用数字,您将需要适当地使用零填充格式化字符串)
链接地址: http://www.djcxy.com/p/1907.html上一篇: How do I sort a list of dictionaries by values of the dictionary in Python?