上一篇文章: Python實用技法第12篇:經過公共鍵對字典列表排序:itemgetter
下一篇文章: Python實用技法第14篇:根據字段將記錄分組:itertools.groupby()
對自定義的類組成的列表進行排序。
內建的sorted()函數可接受一個用來傳遞可調用對象(callable)的參數key,而該可調用對象會返回待排序對象中的某些值,sorted則利用這些值來比較對象。segmentfault
實例:函數
from operator import attrgetter class User: def __init__(self,userId): self.userId=userId def __repr__(self): return 'User({})'.format(self.userId) users=[User(40),User(20),User(30)] print(users) #方法1 print(sorted(users,key=lambda u:u.userId)) #方法2 print(sorted(users,key=attrgetter('userId')))
運行結果:code
[User(40), User(20), User(30)] [User(20), User(30), User(40)] [User(20), User(30), User(40)]
attrgetter一般會更快一點。上面計數一樣適用min()和max()函數。上一篇文章:Python實用技法第12篇:經過公共鍵對字典列表排序:itemgetter
下一篇文章:Python實用技法第14篇:根據字段將記錄分組:itertools.groupby()orm