視訊教程下載下傳連結:http://pan.baidu.com/s/1c1YHrdI
配套教程下載下傳:http://pan.baidu.com/s/1qYdI6q4
這節課,我們來講解自定義對象排序,假如現在你正在開發一個社交網絡應用,有很多使用者在使用,他們都有姓,名,生日,使用者ID,最喜歡的顔色,等等各種屬性,現在要你編寫一個算法,通過對象的各個屬性來對這個自定義對象進行排列,比如說,對使用者ID排序,那麼應該怎麼實作呢?在這裡,還是需要從operator子產品中引入attrgetter類,
|
接着我們來模拟建立一個使用者類,然後定義它的init函數,這裡有2個屬性,使用者名和使用者id:
|
然後,我們再定義一個repr函數,這個函數的功能是當需要顯示一個對象在螢幕上時,将這個對象的屬性或者是方法整理成一個可以列印輸出的格式。這裡我們定義一個這樣的輸出格式,把使用者名和id通過冒号連接配接起來:
|
大家可能對這個函數沒有直覺的了解,是以,我們建立一個使用者的清單,然後通過循環将所有的User對象列印出來:
|
運作:
圖 6‑16
你看,它會按照repr函數定義的格式将每個User對象列印出來。
但是,列印出來的順序是按照我們定義的順序列印的,這裡我想對這個對象清單按照指定的方式排序,是以就來到本節課的主題了:對自定義對象進行排序,假如現在我們來對清單對象的name屬性排序:
|
你看,成功的對name屬性進行了排序:
圖 6‑17
再來對id排序試試:
|
運作:
圖 6‑18
你看,成功的對id進行了排序。
更多精彩内容盡在視訊中!