我在Python中有以下列表列表。
[[53.60495722746216, 'Percent Cats'],
[45.298311033121294, 'Percent Dogs'],
[1.0967317394165388, 'Percent Horses']]
现在我希望动物的百分比最高。在这种情况下,它将是Cats
。
如何对此结构进行排序以获取值?
答案 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]