我试图从列表中每个元组的第0个索引处获取最大值,其中列表中的每个元素都是一个元组。例如
li = [(100, "Apple"), (50, "Banana"), (150, "Mango")]
是否可以不对列表进行排序就获得maximum value at 0th index of the tuple
?
答案 0 :(得分:0)
max
允许您指定key
,该表达式带有一个lambda表达式,该表达式指示如何在比较时对每个元素进行赋值。您可以按照以下步骤操作
li = [(100, "Apple"), (50, "Banana"), (150, "Mango")]
result = max(li, key=lambda tup: tup[0]) # (150, "Mango")
max_value = result[0] # 150
答案 1 :(得分:0)
您还可以在max内使用生成器表达式:
print(max(x for (x,y) in li))
# 150
,或更笼统地说,是使用索引:
print(max(t[0] for t in li))
# 150
生成器表达式会将每个元组的第一个元素生成为max,max将跟踪并返回这些值的最大值-您想要的。
答案 2 :(得分:0)
max(li)
将通过比较每个元组的第一个元素,然后比较相等的第二个元素,简单地返回具有最高值的元素。
>>> max(li)
(150, 'Mango')
如果要使用元组的另一个元素来获取最大值,则可以使用函数key
的{{1}}参数来选择要比较的值。