嵌套列表场景下Python max()函数的用法及自定义取值疑问
问题解答
1. max()函数的工作机制及判定依据
Python中对嵌套列表使用max()时,会按照字典序逐个元素比较:
- 先对比子列表的第一个元素(也就是
[时,分,秒]的列表):列表比较是从第一个元素开始依次对比,比如[2,17,17]和[1,47,16],先比第一个元素2和1,2更大,所以这个子列表直接被判定为更大的那个。 - 你的示例里刚好总秒数最大的子列表,它的
[时,分,秒]列表也是字典序最大的,所以结果和按总秒数选的一致,但本质上max()并没有直接比较第二个元素的总秒数,而是在比子列表的整体字典序。
2. 若子列表第二个元素为随机数,如何选取该元素最大的子列表
直接给max()函数加key参数,指定按子列表的第二个元素进行比较即可,修改函数的返回语句为:
return max(w, key=lambda item: item[1])
这样max()会以每个子列表的item[1](即第二个元素)的值作为判断依据,直接返回该元素值最大的子列表,完全不受第一个元素的影响。
内容的提问来源于stack exchange,提问作者post_lupy
相关产品推荐
相关产品推荐

