快速排序 多字段排序

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参数,自己写一个方法比较。


你可能感兴趣的:(排序,python)