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

时间:2012-09-05 03:24:29

标签: python sorting dictionary date-sorting

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

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('-')))

但是我收到一个错误,因为它试图对元组进行排序(Soonr:2005-5-1)而不仅仅是日期。 如何更新排序参数以告诉它只查看整个元组上的日期?

2 个答案:

答案 0 :(得分:1)

试试这个:

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

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

答案 1 :(得分:0)

不确定您是否可以控制数据结构,但如果这样做,请将数据结构的第一个元素更改为您需要排序的日期。 Python通过它找到的第一个元素对iterables进行排序,或者它可以按a key you define排序。

我建议您将其设为元组,并在其中添加字典 ,以简化操作:

>>> 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'})]