首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果列表中的每个元素都是一个元组,如何在元组的第0个索引处获取最大值?

如果列表中的每个元素都是一个元组,如何在元组的第0个索引处获取最大值?
EN

Stack Overflow用户
提问于 2018-06-25 02:08:25
回答 3查看 54关注 0票数 -2

我试图从一个列表中获取元组第0个索引处的最大值,该列表中的每个元素都是一个元组。例如:

li = [(100, "Apple"), (50, "Banana"), (150, "Mango")]

有没有可能在不对列表进行排序的情况下获得maximum value at 0th index of the tuple

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-25 02:17:11

max(li)将通过比较每个元组的第一个元素,然后在相等的情况下返回第二个元素,简单地返回具有最高值的元素。

代码语言:javascript
复制
>>> max(li)
(150, 'Mango')

如果希望使用元组的另一个元素获得最大值,可以使用函数maxkey参数选择要比较的值。

票数 0
EN

Stack Overflow用户

发布于 2018-06-25 02:11:14

max允许您指定key,它接受一个λ表达式,该表达式指示如何在比较时为每个元素赋值。您可以执行以下操作

代码语言:javascript
复制
li = [(100, "Apple"), (50, "Banana"), (150, "Mango")]
result = max(li, key=lambda tup: tup[0])    # (150, "Mango")
max_value = result[0]                       # 150
票数 0
EN

Stack Overflow用户

发布于 2018-06-25 02:12:55

您还可以在max中使用生成器表达式:

代码语言:javascript
复制
print(max(x for (x,y) in li))
# 150

或者,更一般地使用索引:

代码语言:javascript
复制
print(max(t[0] for t in li))
# 150

生成器表达式将每个元组的第一个元素生成为max,max将跟踪并返回这些值中的最大值--您想要的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51012646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档