2011-04-09 110 views
0

方案:包含的列表記錄「行」的各種價值觀排序混合數值列表列表

列表

問題:這樣的值最終遍佈List.sort不走數值考慮地方

即9出現在列表80

我使用

list.sort(key=operator.itemgetter[index]) 

嘗試後,做一個

list.sort(lambda x,y:int(x[index])<int(y[index])) 

無濟於事。

+0

哪些值列表 - 我們需要更多的信息 – Mark 2011-04-09 14:42:59

回答

3

使用轉換後的數字作爲關鍵字。

L.sort(key=lambda x: int(x[index])) 
+0

應該已經看到了,謝謝! – Bolster 2011-04-09 14:51:13

2

你在正確的軌道上,但operator.itemgetter是一個函數,所以語法是:

list.sort(key=operator.itemgetter(index)) 

或者,使用lambda:

list.sort(key=lambda x: x[index]) 

參數是要走的路,cmp參數已在Python 3中刪除。如果您想使用它,無論如何,您應該使用CMP()內置函數來實現你的比較:

list.sort(cmp=lambda x, y: cmp(x[index], y[index])) 

參見:http://wiki.python.org/moin/HowTo/Sorting/