2014-11-04 60 views
-1

元組我有一個列表:掌握最大第二成分值

l = [("abc",0.9), ("abc1",0.95), ("abc2",0.8), ("abc3",0.9)] 

我想獲得最高的第二元組值的元組, 即

("abc1", 0.95) 

什麼是最好的辦法做到這一點?

回答

2

您可以簡單地使用max功能,與key參數作爲可以給每個元組進行比較的第二個元素的功能,這樣

print max(l, key=lambda x: x[1]) 
# ('abc1', 0.95) 

否則,你可以使用內置的itemgetter運營商,像這樣

from operator import itemgetter 
print max(l, key=itemgetter(1)) 
# ('abc1', 0.95) 
3

你會使用key參數來max() function

max(l, key=lambda i: i[1]) 

您還可以使用operator.itemgetter()在這裏產生一個可調用:

from operator import itemgetter 
max(l, key=itemgetter(1)) 

演示:

>>> l=[("abc",0.9),("abc1",0.95),("abc2",0.8),("abc3",0.9)] 
>>> max(l, key=lambda i: i[1]) 
('abc1', 0.95) 
>>> from operator import itemgetter 
>>> max(l, key=itemgetter(1)) 
('abc1', 0.95) 
2

使用的內置max功能key關鍵字參數:你可以通過它的功能它查看索引1處的元素(即,第二元素)的元組:

>>> max(l, key=lambda x: x[1]) 
("abc1", 0.95)