好吧,我有這樣的列表(只是一個數據的樣本):在檢查字符串或浮點數時按鍵排序Python列表?
data = {"NAME": "James", "RANK": "3.0", "NUM": "27.5" ... }
現在,如果我跑是這樣的:
sortby = "NAME" //this gets passed to the function, hence why I am using a variable sortby instead
data.sort(key=itemgetter(sortby))
我得到的所有字符串進行排序正確 - 按字母順序。
然而,當「sortby」是任何浮動值(RANK或NUM或任何其他),排序再次完成後,按字母順序排列,而不是數字的,所以我的排序列表看起來是這樣的,那麼:
0.441 101.404 107.558 107.558 108.48 108.945 11.195 12.143 12.801 131.73
這顯然是錯誤的。現在,我該如何做一個這樣的排序(在速度和資源/計算方面最有效率),但是當它是一個浮點數時,它會將浮點值轉換爲浮點數,並且當它是一個浮點數時將其保留爲一個字符串字符串...可能嗎?不,刪除列表中的浮點值引號不是一個選項 - 我無法控制源列表,不幸的是(我知道,這將是一個簡單的解決方案)。
我喜歡這樣的......從來沒有想過用於排序類型的單獨字典。謝謝!唯一的問題是,有50列我需要投這樣的浮動,但它是迄今爲止最流暢的方法... – 2009-07-06 18:21:16
檢查我的答案,不需要單獨的字典。這是一個很好的答案,但是您必須設置50條字典...... – 2009-07-06 18:33:10