基于键排序python列表

dam*_*mon 4 python sorting key

我在python列表中有一些Entrys.每个Entry都有一个创建日期和创建时间.这些值存储为python datetime.date和datetime.time(作为两个单独的字段).我需要获取以前排序的Entrys列表创建条目来自其他人.

我知道有一个list.sort()函数接受一个关键函数.在这种情况下,我是否必须使用日期和时间来创建一个日期时间并将其用作关键字sort()?有一个datetime.datetime.combine(date,time)为此.但是如何在sort函数中指定它呢?

我试过了 key = datetime.datetim.combine(created_date,created_time)

但口译员抱怨说 the name created_date is not defined

class Entry: 
   created_date = #datetime.date
   created_time  = #datetime.time
   ...

my_entries_list=[Entry1,Entry2...Entry10]
my_entries_list.sort(key = datetime.datetim.combine(created_date,created_time))
Run Code Online (Sandbox Code Playgroud)

use*_*342 7

你可能想要这样的东西:

my_entries_list.sort(key=lambda v:
                           datetime.datetime.combine(v.created_date, v.created_time))
Run Code Online (Sandbox Code Playgroud)

传递datetime.datetime.combine(created_date, created_time)尝试combine立即调用并从中断created_date,created_time并且不可用作局部变量.该lambda规定延迟评价:而不是立即执行的代码,它创建了一个函数,调用它的时候,执行指定的代码,并返回结果.该函数还提供了用于访问created_datecreated_time属性的参数.