按日期排序字典列表

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字符串似乎使任务更容易,但我想尽可能避免它

干杯.

Imr*_*ran 6

使用内部字典的键作为排序键.您可以通过传递一个键getter函数来执行此操作,该函数sorted从字典中提取日期键.

sorted(l, key=lambda v: v.keys()[0])
Run Code Online (Sandbox Code Playgroud)