如何在Python中对以下结构进行排序

时间:2015-05-18 13:00:46

标签: python

我在Python中有以下列表列表。

[[53.60495722746216, 'Percent Cats'],
 [45.298311033121294, 'Percent Dogs'],
 [1.0967317394165388, 'Percent Horses']]

现在我希望动物的百分比最高。在这种情况下,它将是Cats

如何对此结构进行排序以获取值?

2 个答案:

答案 0 :(得分:8)

如果您只需要获取一个值,则无需对列表进行排序。使用带有自定义排序功能的内置max功能

In [3]: max(l, key=lambda x: x[0])[1] # compare first elements of inner lists
Out[3]: 'Percent Cats'

甚至

In [4]: max(l)[1] # compare lists directly
Out[4]: 'Percent Cats'

后一个代码也可以,因为sequence objects may be compared to other objects with the same sequence type

  

比较使用词典排序:首先是前两个   比较项目,如果它们不同,则决定了结果   比较;如果它们相等,则比较接下来的两个项目,   依此类推,直到任一序列耗尽。如果所有的项目   两个序列比较相等,序列被认为是相等的。

答案 1 :(得分:0)

a = [[53.60495722746216, 'Percent Cats'], [45.298311033121294, 'Percent Dogs'], [1.0967317394165388, 'Percent Horses']]
print sorted(a, key=lambda x:x[0], reverse=True)[0]