我试图从一个列表中获取元组第0个索引处的最大值,该列表中的每个元素都是一个元组。例如:
li = [(100, "Apple"), (50, "Banana"), (150, "Mango")]
有没有可能在不对列表进行排序的情况下获得maximum value at 0th index of the tuple
?
发布于 2018-06-25 02:17:11
max(li)
将通过比较每个元组的第一个元素,然后在相等的情况下返回第二个元素,简单地返回具有最高值的元素。
>>> max(li)
(150, 'Mango')
如果希望使用元组的另一个元素获得最大值,可以使用函数max
的key
参数选择要比较的值。
发布于 2018-06-25 02:11:14
max
允许您指定key
,它接受一个λ表达式,该表达式指示如何在比较时为每个元素赋值。您可以执行以下操作
li = [(100, "Apple"), (50, "Banana"), (150, "Mango")]
result = max(li, key=lambda tup: tup[0]) # (150, "Mango")
max_value = result[0] # 150
发布于 2018-06-25 02:12:55
您还可以在max中使用生成器表达式:
print(max(x for (x,y) in li))
# 150
或者,更一般地使用索引:
print(max(t[0] for t in li))
# 150
生成器表达式将每个元组的第一个元素生成为max,max将跟踪并返回这些值中的最大值--您想要的值。
https://stackoverflow.com/questions/51012646
复制相似问题