2012-11-10 70 views
1

我想按升序排列未知值的列表,無論是整數或浮點數還是兩者。即[2,-1,1.0]將變成[-1,1.0,2]。不幸的是,sorted()函數似乎不起作用,因爲它似乎按絕對值的降序排序。有任何想法嗎?使用負值和正值對整數和浮點數列表進行排序?

+0

['sorted([2,-1,1.0])'yield'[-1,1.0,2]'](http://ideone.com/j0937A)。你的問題是什麼? – Johnsyweb

回答

1

我有同樣的問題。答案是:如果Python將它們作爲字符串,它將按絕對值對數字進行排序。所以作爲你的關鍵,確保包含一個int()或float()參數。我的工作是語法

數據=排序(數據,鍵=拉姆達X:浮置(X [0]))

...拉姆達X部分只是給其輸出要排序的東西的功能通過。因此,它在我的列表中佔據了一行,找到了float 0th元素,並按此排序。

+0

爲了擴大你的答案,「2」和「2」的區別在於一個是整數,另一個是字符串。字符串包含數字的事實不會改變它的排序方式,因爲字符串按照字典順序排列(就像在字典中一樣),所以'-2'<'-5'(因爲'' - '==' - ' '和'2''''')。另一方面,整數按價值排序。 – Blender

相關問題