2017-02-27 163 views
-4

我有如下图所示它有两个值 (名称,编号)的列表:获得最大的价值

lst = [['ABC', 1.4976557902646848], ['LMN', 1.946130694688788], ['QRS', 3.0039607941124085]] 

我想获得的最大数量的在这个名字值名单。在这个例子中它将是'QRS'

+2

不要命名您的列表'list'。它将覆盖内置类型。 – Li357

+3

http://stackoverflow.com/questions/13039192/max-second-element-in-tuples-python可能会更接近愚蠢。 – TigerhawkT3

回答

1

使用max内置函数与key kwarg。有关更多详细信息,请参阅docsmax

它将返回具有最大数量的子列表,我们从中获取第一个元素(“名称”)。

li = [['ABC', 1.4976557902646848], ['LMN', 1.946130694688788], ['QRS', 3.0039607941124085]] 

print(max(li, key=lambda x: x[1])[0]) 
# QRS 

可以使用itemgetter而不是定义拉姆达:

from operator import itemgetter 

li = [['ABC', 1.4976557902646848], ['LMN', 1.946130694688788], ['QRS', 3.0039607941124085]] 

print(max(li, key=itemgetter(1))[0]) 
# QRS