python中的排序

開發中經常遇到排序的事,彙總到此博文中,用以備忘。

一、字典排序

字典是沒有順序的,將字典排序,經常是將字典轉換成一個列表,字典的鍵和值放到一個元組或列表裏。比如對以下字典排序。

  >>> adict = {'c': 5, 'b': 3,'a': 9,'d': 0}
  >>> sorted(adict.items(),key=lambda x:x[1]) # 將adict按值的大小排序
 [('d', 0), ('b', 3), ('c', 5), ('a', 9)]
 #倒序排列
 >>> sorted(adict.items(),key=lambda x:x[1], reverse=True)
[('a', 9), ('c', 5), ('b', 3), ('d', 0)]


二、類實例排序

    自定義類按照某個屬性排序,這個很有用,比如網站一個列表頁,按照某些列進行排序。對查詢結果排序,要比在數據庫裏排序性能好很多。

    有一個自定義的類名爲Host。Host中有個cpu_percent屬性。要求按cpu_percent倒序排列。數據庫中查詢出所有對象,得到數據集爲Hosts

hosts = Host.objects.all()
sorted(hosts , key=lambda host: host.cpu_percent, reverse=True)

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章