2015-03-19 85 views
-2

我有這個表格中的列表列表,我想根據值(1.0,2.0,3.0等)進行排序。有沒有可以使用的Python模塊?在python中有效排序列表

class_list= [['Image_3', '3.0'], ['Image_7', '7.0'], ['Image_4', '4.0'], 
      ['Image_8', '8.0'], ['Image_1', '1.0'], ['Image_5', '5.0'], 
      ['Image_6', '6.0'], ['Image_2', '2.0']] 
+1

你看過[文檔](https://docs.python.org/2/library/functions.html#sorted)嗎?甚至有[關於排序的初學者教程](https://docs.python.org/2/howto/sorting.html#sortinghowto)。 – 2015-03-19 13:05:13

回答

1

你可以試試下面

>>> class_list= [['Image_3', '3.0'], ['Image_7', '7.0'], ['Image_4', '4.0'], 
      ['Image_8', '8.0'], ['Image_1', '1.0'], ['Image_5', '5.0'], 
      ['Image_6', '6.0'], ['Image_2', '2.0']] 
>>> sorted(class_list, key=lambda x: float(x[1])) 
[['Image_1', '1.0'], ['Image_2', '2.0'], ['Image_3', '3.0'], ['Image_4', '4.0'], ['Image_5', '5.0'], ['Image_6', '6.0'], ['Image_7', '7.0'], ['Image_8', '8.0']] 

在您需要的第二個值的數據類型轉換,同時排序浮動或否則它會做一個字符串排序而不是數字排序。

+0

非常感謝。這適用於我 – user4543816 2015-03-19 13:34:05

+0

http://stackoverflow.com/help/accepted-answer – 2015-03-19 13:38:33