获取具有最大第二个组件值的元组

时间:2014-11-04 12:03:53

标签: python python-2.7 tuples max

我有一个清单:

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

我希望获得具有最高第二元组值的元组, 即

("abc1", 0.95)

实现这一目标的最佳方式是什么?

3 个答案:

答案 0 :(得分:3)

您使用max() functionkey参数:

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)

答案 1 :(得分: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)

答案 2 :(得分:2)

在内置key函数中使用max关键字参数:您可以向它传递一个函数,该函数查看元组的索引1(即第二个元素)处的元素:

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