我知道tat類似的問題已被問幾次。我現在如何使用搜索功能,但它仍然無法正常工作。python排序列表與鑄造
所以這裏是問題設置。我有一個包含字符串的列表列表。一列包含實際表示浮點值的字符串。這也是我想要排序的列。問題是,Python似乎忽略了 - (減號)條目標誌。所以示例清單:
[[blaa, '0.3', bli], [bla, '0.1', blub], [bla, '-0.2', blub]]
被排序是這樣的:
[[bla, '0.1', blub], [bla, '-0.2', blub], [blaa, '0.3', bli]]
,而不是如何它應該是:
[[bla, '-0.2', blub],[bla, '0.1', blub], [blaa, '0.3', bli]]
到目前爲止,我曾嘗試:
- 鑄造第二列以浮動 並按該列
,如:
for i in mylist:
i[1] = float(i[1])
mylist.sort(key=lambda x: x[1])
或
for i in mylist:
i[1] = float(i[1])
mylist.sort(key=operator.itemgetter(1))
- 我也試圖定義自己的比較 功能:
,如:
mylist.sort(cmp=lambda x,y: cmp(float(x), float(y)), key=operator.itemgetter(1))
和上述方法的任何其他組合,也與sorted
相同。到目前爲止,沒有成功,每次都會忽略負號。如何解決這個問題?
也已經嘗試了伊格納西奧的建議。我應該提到我必須使用python 2.5。
所以這可能是環境問題。檢查你的python版本。 – Kabie 2010-12-02 09:27:45
如果你認爲某些東西是字符串,那麼你應該把引號當作是考慮可能想要運行你的代碼的人。 – aaronasterling 2010-12-02 09:27:50
你有多確定他們都是字符串? – 2010-12-02 09:29:22