Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按值排序的列表的最近日期_Python - Fatal编程技术网

Python 按值排序的列表的最近日期

Python 按值排序的列表的最近日期,python,Python,我有一个大致如下的列表: mylist=[[20200101]、[20200108]、[20200101]、[12000110]、[12000101]] 它是一个列表列表,每个列表的第一个元素是值,第二个元素是日期。我想选择第一个值最高的列表(本例中为2),然后是最近的日期(本例中为20200108-2020年1月8日) 我知道您可以将lambda函数传递给内置的max()函数,如下所示,但我不确定如何处理先选择值的最大值,然后选择日期的最大值 max(mylist,key=lambda x:

我有一个大致如下的列表:

mylist=[[20200101]、[20200108]、[20200101]、[12000110]、[12000101]]
它是一个列表列表,每个列表的第一个元素是值,第二个元素是日期。我想选择第一个值最高的列表(本例中为2),然后是最近的日期(本例中为20200108-2020年1月8日) 我知道您可以将lambda函数传递给内置的
max()
函数,如下所示,但我不确定如何处理先选择值的最大值,然后选择日期的最大值

max(mylist,key=lambda x:x[0])

默认的
max
在可分级排序中从第一个索引一直工作到最后一个索引

mylist = [[2, 20200101], [2, 20200108], [2, 20200101], [1, 20200110], [1, 20200101]]
max(mylist)

你可以传两把钥匙

mylist = [[2, 20200101], [2, 20200108], [2, 20200101], [1, 20200110], [1, 20200101]]
max(mylist, key=lambda x: (x[0], x[1]))

在Python中,列表默认情况下按字典进行比较。这意味着比较第一个元素,然后比较下一个元素,依此类推,这正是您想要的。(作为旁注,较短的列表将小于较长的列表)因此,无需按键即可
max

max(mylist)

列表的默认比较已经按照您想要的方式工作了。您是否尝试过使用
max(mylist)
?谢谢,在尝试生成一个最小的示例时,我实际上过于简化了我的示例。在我的实际问题中,每个项都是一个具有
obj.value
obj.date
的对象,因此我需要能够像第二个示例中那样指定键。谢谢