Pau*_*son 2 python sorting dictionary date
我有以下列表:
l = [{datetime.date(2011, 4, 30): "Carrot"},
{datetime.date(2009, 4, 12): "Banana"},
{datetime.date(2012, 1, 1): "Corn"}]
Run Code Online (Sandbox Code Playgroud)
我想要一个新的列表,其中包含按日期排序的词典(最早的第一个):
l = [{datetime.date(2009, 4, 12): "Banana"},
{datetime.date(2011, 4, 30): "Carrot"},
{datetime.date(2012, 1, 1): "Corn"}]
Run Code Online (Sandbox Code Playgroud)
我希望答案涉及到sorted,key但我正在努力将每个字典的关键字用作比较器.在其他提出类似问题的问题中,词典采用以下形式:
{'date':datetime.date(2009, 4, 12): "Banana"}
Run Code Online (Sandbox Code Playgroud)
添加date字符串似乎使任务更容易,但我想尽可能避免它
干杯.
使用内部字典的键作为排序键.您可以通过传递一个键getter函数来执行此操作,该函数sorted从字典中提取日期键.
sorted(l, key=lambda v: v.keys()[0])
Run Code Online (Sandbox Code Playgroud)