2015-03-19 55 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