itemgetter函数:对字典列表进行多键排序

转:http://www.cnblogs.com/gongxr/p/7291714.html

itemgetter函数:对字典列表进行多键排序

复制代码
 1 from operator import itemgetter
 2 
 3 list_people = [
 4     {'name': 'Mike', 'age': 22, 'score': 90},
 5     {'name': 'Alice', 'age': 22, 'score': 90},
 6     {'name': 'Lee', 'age': 26, 'score': 92},
 7     {'name': 'Ben', 'age': 26, 'score': 85},
 8     {'name': 'Tom', 'age': 33, 'score': 90},
 9     {'name': 'Jill', 'age': 41, 'score': 72}
10 ]
11 
12 print('根据名字排序:')
13 for i in sorted(list_people, key=lambda person: person['name']):
14     '''sorted()函数默认升序排列'''
15     print(i)
16 
17 print('\n根据得分降序排列:')
18 for i in sorted(list_people, key=itemgetter('score'), reverse=True):
19     '''参数reverse=True表示降序排列'''
20     print(i)
21 
22 print('\n根据名字和年龄多键排序:')
23 for i in sorted(list_people, key=itemgetter('name', 'age')):
24     print(i)
复制代码

运行结果:

复制代码
1 根据名字和年龄多键排序:
2 {'name': 'Alice', 'age': 22, 'score': 90}
3 {'name': 'Ben', 'age': 26, 'score': 85}
4 {'name': 'Jill', 'age': 41, 'score': 72}
5 {'name': 'Lee', 'age': 26, 'score': 92}
6 {'name': 'Mike', 'age': 22, 'score': 90}
7 {'name': 'Tom', 'age': 33, 'score': 90}
复制代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值