我在 python 列表中有一些条目。每个条目都有一个创建日期和创建时间。这些值存储为 python datetime.date 和 datetime.time(作为两个单独的字段)。我需要获取条目列表已排序,以便先前创建的条目排在其他条目之前。
我知道有一个接受键函数的 list.sort() 函数。在这种情况下,我是否必须使用日期和时间来创建日期时间并将其用作 sort()< 的键
?为此有一个 datetime.datetime.combine(date,time)
。但是我如何在排序函数中指定它呢?
我试过 key = datetime.datetim.combine(created_date,created_time)
但是解释器提示说 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))
最佳答案
你可能想要这样的东西:
my_entries_list.sort(key=lambda v:
datetime.datetime.combine(v.created_date, v.created_time))
传递 datetime.datetime.combine(created_date, created_time)
尝试立即调用 combine
并在 created_date
和 created_time
不可用作局部变量。 lambda
提供了延迟计算:它不是立即执行代码,而是创建一个函数,该函数将在调用时执行指定的代码并返回结果。该函数还提供将用于访问 created_date
和 created_time
属性的参数。
关于python - 根据键对python列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14198382/