参考资料:
Python Cookbook, 3rd edition, by David Beazley and Brian K. Jones (O’Reilly).
operator.attrgetter() 进行对象排序
Posted hycstar
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了operator.attrgetter() 进行对象排序相关的知识,希望对你有一定的参考价值。
## 使用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)]
以上是关于operator.attrgetter() 进行对象排序的主要内容,如果未能解决你的问题,请参考以下文章