首页 > 编程语言 > 详细

operator.attrgetter() 进行对象排序

时间:2018-07-21 13:21:44      阅读:19      评论:0      收藏:0      [点我收藏+]

标签:col   self.   span   vid   cookbook   item   rom   edi   ret   

## 使用operator.attrgetter() 进行对象排序

 

 1 from operator import attrgetter
 2 
 3 
 4 class Student:
 5     def __init__(self, name, id):
 6         self.name = name
 7         self.id = id
 8 
 9     def __repr__(self):
10         return "(%s, %s)" % (self.name, self.id)
11 
12 
13 students = [Student(Stanley, 167), Student(Lily, 288), Student(Bob, 134), Student(Peter, 111)]
14 
15 students_by_id = sorted(students, key=attrgetter(id))
16 print(students_by_id)
17 # [(Peter, 111), (Bob, 134), (Stanley, 167), (Lily, 288)]
18 # 使用attrgetter速度比匿名函数更快,且同样支持多个key,此函数同样适用于min(), max()等函数,用法与itemgetter相同
19 
20 students_by_id = sorted(students, key=lambda s: s.id)
21 print(students_by_id)
22 # [(Peter, 111), (Bob, 134), (Stanley, 167), (Lily, 288)]

 

参考资料:
  Python Cookbook, 3rd edition, by David Beazley and Brian K. Jones (O’Reilly). 

operator.attrgetter() 进行对象排序

标签:col   self.   span   vid   cookbook   item   rom   edi   ret   

原文:https://www.cnblogs.com/hycstar/p/9345995.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号