python-進階教程-使用物件屬性進行排序
0.摘要
python中的類通常不支援比較操作,但是我們可以依據類的屬性值進行排序。
本文主要介紹使用operator.attrgetter()方法獲取類的屬性值,從而完成排序。
1.operator.attrgetter()方法
from operator import attrgetter
class User:
def __init__(self, user_id):
self.user_id = user_id
def __repr__(self):
return 'User({})'.format(self.user_id)
# Example
users = [User(23), User(3), User(99)]
print(users)
#result:[User(23), User(3), User(99)]
# Sort it by user-id
print(sorted(users, key=attrgetter('user_id')))
#result:[User(3), User(23), User(99)]
藉助於lambda表示式也可實現同樣的功能,但operator.attrgetter()方法執行效率更高。
相關文章
- python-進階教程-對切片進行命名Python
- python-進階教程-通過公共鍵對字典列表排序Python排序
- 前端進階課程之物件屬性特性詳解前端物件
- Vue的進階屬性Vue
- background-attachment屬性進階
- Homebrew進階使用教程(一)
- Python進階教程5——物件導向Python物件
- Vue-5個進階屬性(指令等)Vue
- Python進階之“屬性(property)”詳解Python
- JavaScript 根據物件鍵值進行排序JavaScript物件排序
- 「Js」物件按照鍵名來進行排序JS物件排序
- 根據陣列中物件進行排序陣列物件排序
- 辦公進階:HoudahSpot使用教程
- Xamarin XAML語言教程使用屬性設定進度條的當前進度
- python-進階教程-根據欄位將記錄分組Python
- python教程12-物件導向進階Python物件
- 陣列物件按物件某個屬性排序陣列物件排序
- Xamarin XAML語言教程使用使用Progress屬性設定當前進度
- Arthas 進階教程
- Vim進階教程
- Xamarin XAML語言教程Progress屬性設定進度條進度
- CAD屬性編輯操作——物件屬性教程物件
- js物件建立進階JS物件
- Python 快速教程(進階篇06):迴圈物件Python物件
- Python 快速教程(進階篇07):函式物件Python函式物件
- Xamarin XAML語言教程使用Progress屬性資料繫結設定進度條進度
- 【HenCoder Android 開發進階】自定義 View 1-7:屬性動畫(進階篇)AndroidView動畫
- Android動畫效果之Property Animation進階(屬性動畫)Android動畫
- 使用索引掃描來進行排序索引排序
- 對list集合中的物件進行排序(轉載)物件排序
- js對陣列中相同物件元素進行去重,裡面物件相同id,其他不同屬性進行文字疊加JS陣列物件
- 使用JAVA進行ad域身份驗證常用屬性詳解Java
- Java小白進階筆記(5)-進階物件導向Java筆記物件
- python-進階教程-對兩個集合/字典求交集、差集、並集Python
- 前端進階-類和物件前端物件
- 使用XPathExpression類對XML進行排序 (轉)ExpressXML排序
- iOS中對NSArray中自定義的物件進行排序iOS物件排序
- 在Java中對集合當中的物件進行排序Java物件排序