python列表排序
簡單記一下python中List的sort方法(或者sorted內建函數)的用法。
關鍵字:
python列表排序 python字典排序 sorted
List的元素能夠是各類東西,字符串,字典,本身定義的類等。
sorted函數用法以下: html
其中,data是待排序數據,能夠使List或者iterator, cmp和key都是函數,這兩個函數做用與data的元素上產生一個結果,sorted方法根據這個結果來排序。
cmp(e1, e2) 是帶兩個參數的比較函數, 返回值: 負數: e1 < e2, 0: e1 == e2, 正數: e1 > e2. 默認爲 None, 即用內建的比較函數.
key 是帶一個參數的函數, 用來爲每一個元素提取比較值. 默認爲 None, 即直接比較每一個元素.
一般, key 和 reverse 比 cmp 快不少, 由於對每一個元素它們只處理一次; 而 cmp 會處理屢次.
經過例子來講明sorted的用法:
1. 對由tuple組成的List排序 python
用key函數排序(lambda的用法見 註釋1) linux
用cmp函數排序 函數
用 operator 函數來加快速度, 上面排序等價於:(itemgetter的用法見 註釋2) fetch
用 operator 函數進行多級排序 ui
2. 對由字典排序 spa
註釋1
參考:http://jasonwu.me/2011/10/29/introduce-to-python-lambda.html
註釋2
參考:http://ar.newsmth.net/thread-90745710c90cf1.html
class itemgetter(__builtin__.object)
| itemgetter(item, ...) --> itemgetter object
|
| Return a callable object that fetches the given item(s) from its operand.
| After, f=itemgetter(2), the call f(r) returns r[2].
| After, g=itemgetter(2,5,3), the call g(r) returns (r[2], r[5], r[3])
至關於 .net
參考資料:
1. http://www.linuxso.com/linuxbiancheng/13340.html
2. http://www.douban.com/note/13460891/htm