快速排序 多字段排序

http://zh.wikipedia.org/wiki/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F#Python


http://fatkun.com/2011/05/python-list-sort.html


Python 中的排序真的很方便
你可以使用alist.sort()或者sorted(alist)進行排序。不同的是,前者會改變原來list的順序。
在python中你可以簡單的指定key則可以按照某一列排序

#默認順序>>> l
[('aa','2'),('aa','1'),('bb','1'),('dd','3'),('cc','4')]#普通排序,默認會按順序進行排序>>>sorted(l)[('aa','1'),('aa','2'),('bb','1'),('cc','4'),('dd','3')]#指定排序的優先級,在這裏你可以看到多列排序只需要用逗號隔開即可>>>fromoperatorimport itemgetter, attrgetter
>>>sorted(l, key=itemgetter(1,0))[('aa','1'),('bb','1'),('aa','2'),('dd','3'),('cc','4')]

對List裏的dict排序,key=lambda x:x['b']。b爲你想排序的列

>>> l =[{'a':'fatkun','b':23},{'a':'ken','b':21}]>>>sorted(l, key=lambda x:x['b'])[{'a': 'ken','b': 21},{'a': 'fatkun','b': 23}]

這樣的排序方法實在是太簡單了~~另外如果需要更復雜的方法,可以使用cmp參數,自己寫一個方法比較。


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