目錄
一榆综、列表排序
二、內(nèi)置排序函數(shù)
三陈辱、特殊方法
四奖年、可擴(kuò)展的“大小”比較及排序
一、列表排序
- 列表方法
sort()
對原列表進(jìn)行排序沛贪,改變原列表內(nèi)容
如果列表中的元素都是數(shù)字,默認(rèn)按升序排序
通過添加參數(shù)reverse=True可改為降序排列
image.png
image.png
二利赋、內(nèi)置排序函數(shù)
- 通用函數(shù)
sorted()
類似sort()水评,但返回的是排好序的列表副本,原列表內(nèi)容不變
image.png
只有當(dāng)列表中的所有元素都是同一種類型時(shí)媚送,sort()
和sorted()
才會正常工作
三中燥、特殊方法
- 特殊方法
_lt_
由于Python的可擴(kuò)展性,每種數(shù)據(jù)類型可以定義特殊方法
def_lt_(self塘偎,y)
返回True視為比y“小”疗涉,排在前
返回False視為比y“大”,排在后
只要類定義中定義了特殊方法_lt_
吟秩,任何自定義類都可以使用x<y這樣的比較
四咱扣、可擴(kuò)展的“大小”比較及排序
- 例子:Student
姓名name,成績grade -
按照成績由高到低排序
image.png -
構(gòu)造一個列表涵防,加入Student對象
image.png
直接調(diào)用列表sort方法
可以根據(jù)_lt_
定義排序直接檢驗(yàn)Student對象的大小
S[i]<s[j]
-
另外可以定義其它比較符
_gt_
等
image.png -
重新定義
_lt_
方法闹伪,改為比較姓名
這樣sort方法就能按照姓名來排序
image.png
image.png