Python 中获取元组列表中最大值对应的第一个元素


我们有一个元组列表。我们需要找出其中值最大的那个元组。但如果多个元组具有相同的值,我们需要第一个具有最大值的元组。

使用 itemgetter 和 max

使用 itemgetter(1) 获取索引位置 1 的所有值,然后应用 max 函数获取具有最大值的项。但如果返回多个结果,则应用索引零以获取具有最大元素的第一个元组。

示例

 在线演示

from operator import itemgetter
# initializing list
listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)]
# Given list
print("Given list : \n" ,listA)
# using max() and itemgetter()
res = max(listA, key=itemgetter(1))[0]
# printing result
print("Day with maximum score is : \n",res)

输出

运行以上代码得到以下结果:

Given list :
[('Mon', 3), ('Tue', 20), ('Wed', 9)]
Day with maximum score is :
Tue

使用 max 和 lambda

我们使用 lambda 函数获取索引位置 1 的元素,然后应用 max 函数。然后我们应用索引位置 0 获取多个匹配项中的第一个以获得最终结果。

示例

 在线演示

# initializing list
listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)]
# Given list
print("Given list : \n" ,listA)
# using max() and lambda
res = max(listA, key = lambda i : i[1])[0]
# printing result
print("Day with maximum score is : \n",res)

输出

运行以上代码得到以下结果:

Given list :
[('Mon', 3), ('Tue', 20), ('Wed', 9)]
Day with maximum score is :
Tue

使用 sorted

在这种方法中,我们使用 sorted 函数,并在应用 lambda 函数时将 reversed 设置为 true。

示例

 在线演示

# initializing list
listA = [('Mon', 3), ('Tue', 20), ('Wed', 9)]
# Given list
print("Given list : \n" ,listA)
# using sorted() and lambda
res = sorted(listA, key = lambda i: i[1], reverse = True)[0][0]
# printing result
print("Day with maximum score is : \n",res)

输出

运行以上代码得到以下结果:

Given list :
[('Mon', 3), ('Tue', 20), ('Wed', 9)]
Day with maximum score is :
Tue

更新于: 2020年6月4日

937 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告