在Python元组列表中寻找最大值

5

我有一个元组列表(list):

('2015-06-19', 3453455, 5, 'Scheduled')
('2015-05-19', 6786788, 6, 'Overdue')
('2015-04-19', 2342344, 2, 'Not Received')
('2015-03-19', 9438549, 0, 'Not Received')
('2015-02-19', 6348759, 7, 'Not Received')

当我运行这个程序时,我得到了这个结果:
>>> print(max(list))
('2015-06-19', 3453455, 5, 'Scheduled')

显然,max(list) 基于列表中元组的第一个值来确定最大值。我只是想知道这是否是 max(list) 在处理元组列表时的默认行为; 只检查元组中的第一项?

那么,如果我想基于元组的第二个项/列返回具有最大值的元组。我该怎么做呢?


3
请查看此链接:https://dev59.com/lG435IYBdhLWcg3wpx2x。 - aldeb
如果任何元组的第一个值匹配,则它将检查后续值。 - ZdaR
如果需要的话,您可以更改此行为:max(tup_list, key= lambda x: x[1]) - kylieCatt
1个回答

16
您可以使用 lambda 表达式指定要用于比较的字段。
max(list,key=lambda x:x[1])

或者,可以使用itemgetter

from operator import itemgetter
max(list,key=itemgetter(1))

很棒的答案,我总是更喜欢使用itemgetter,因为它更快。 - jamylak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接