我有一些Python的入口列出。每个条目具有创建日期和创建时间。那个值以python格式存储日期时间.日期以及日期时间.time(作为两个单独的字段)。我需要对条目列表进行排序,以便之前创建的条目排在其他条目之前。在
我知道有一个列表.排序()接受密钥的函数函数。在在这种情况下,我是否必须使用日期和时间来创建日期时间并将其用作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))
从documentation
例如
(这与已经发布的lambda相同,只是为了清楚起见而分开)。在
您的另一个选择是使用
cmp
参数(这里不是必需的,但是对于一个足够昂贵的可以短路的键函数,这可能会更快)你可能想要这样的东西:
传递}不能作为局部变量使用。
datetime.datetime.combine(created_date, created_time)
将尝试立即调用combine
,并中断,因为created_date
和{lambda
提供延迟求值:它不是立即执行代码,而是创建一个函数,该函数将在调用时执行指定的代码并返回结果。该函数还提供将用于访问created_date
和created_time
属性的参数。在使用
lambda
:相关问题 更多 >
编程相关推荐