這篇文章帶給大家的內容是關於Python實作對自訂類別物件排序(利用attrgetter),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
1、需求
對自訂的類別所組成的清單進行排序。2、解決方案
內建的sorted()函數可接受一個用來傳遞可呼叫物件(callable)的參數key,而該可呼叫物件會回傳待排序物件中的某些值,sorted則利用這些值來比較物件。
實例:
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')))
執行結果:
[User(40), User(20), User(30)] [User(20), User(30), User(40)] [User(20), User(30), User(40)]
attrgetter通常會更快一點。上面計數同樣適用min()和max()函數。
#以上是Python實作對自訂類別物件排序(利用attrgetter)的詳細內容。更多資訊請關注PHP中文網其他相關文章!