2017-02-27 218 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