2024-04-26 13:52:59 发布
网友
我有一个字典列表,希望每个项都按特定的属性值排序。
考虑到下面的数组
[{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]
当按name排序时,应该变成
name
[{'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现在就是你想要的了。
my_list
(3年后)编辑添加:
新的key参数更高效、更整洁。现在一个更好的答案是:
key
my_list = sorted(my_list, key=lambda k: k['name'])
……在我看来,lambda比operator.itemgetter更容易理解,但是YMMV。
operator.itemgetter
import operator
按key=“name”对词典列表进行排序:
list_of_dicts.sort(key=operator.itemgetter('name'))
按key='age'对词典列表进行排序:
list_of_dicts.sort(key=operator.itemgetter('age'))
使用键而不是cmp可能看起来更干净:
newlist = sorted(list_to_be_sorted, key=lambda k: k['name'])
或者像J.F.塞巴斯蒂安和其他人建议的那样
from operator import itemgetter newlist = sorted(list_to_be_sorted, key=itemgetter('name'))
为了完整性(如fitzgeraldsteele在注释中指出的那样),添加reverse=True来按降序排序
reverse=True
newlist = sorted(l, key=itemgetter('name'), reverse=True)
my_list
现在就是你想要的了。(3年后)编辑添加:
新的
key
参数更高效、更整洁。现在一个更好的答案是:……在我看来,lambda比
operator.itemgetter
更容易理解,但是YMMV。按key=“name”对词典列表进行排序:
按key='age'对词典列表进行排序:
使用键而不是cmp可能看起来更干净:
或者像J.F.塞巴斯蒂安和其他人建议的那样
为了完整性(如fitzgeraldsteele在注释中指出的那样),添加
reverse=True
来按降序排序相关问题 更多 >
编程相关推荐