我正在尝试对元组字典进行排序,其中第二项包含要排序的日期。 字典看起来像这样:
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)而不仅仅是日期。 如何更新排序参数以告诉它只查看整个元组上的日期?
答案 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'})]