如何在python中对元组中的日期进行排序



我正在尝试对元组字典进行排序,其中第二项包含要排序的日期。这本字典看起来像这样:

time_founded: {Soonr: 2005-5-1, SpePharm: 2006-9-1, and so on...}

现在我正试着这样排序日期:

dict = sortedLists[category]    
sortedtime = sorted(dict.iteritems(),  key=lambda  d: map(int, d.split('-')))

但我遇到了一个错误,因为它试图对元组(Sooner:2005-5-1)进行排序,而不仅仅是日期。如何更新排序参数,使其只查看日期,而不查看整个元组?

试试这个:

sortedtime = sorted(dict.iteritems(), key=lambda d: map(int, d[1].split('-')))

唯一的区别是[1],它选择了项目的值部分。

不确定您是否可以控制数据结构,但如果可以,请将数据结构的第一个元素更改为您需要排序的日期。Python根据找到的第一个元件对可迭代项进行排序,也可以根据您定义的键进行排序。

我建议你把它做成一个元组,里面有一个字典,以简化事情:

>>> dates = [ ('2006-9-1', {Soonr:'2005-5-1'}),
              ('2006-8-9', {Soonr:'2005-8-28'})
            ]
>>> dates.sort() #will sort by the first element of the list items, if iterable...
>>> dates
[('2006-8-9', {Soonr:'2005-8-28'}), ('2006-9-1', {Soonr:'2005-5-1'})]

相关内容

  • 没有找到相关文章