python中对列表中的日期进行排序

有一个无序的日期列表['11-22-2013',
'01-22-2013',
'06-30-2013',
'01-29-2014',
'06-14-2013',
'12-27-2013',
'01-07-2014',
'05-21-2014',
'12-20-2011',
'04-17-2012',
'01-07-2012',
'11-03-2013',
'11-06-2012',
'03-08-2014',
'02-08-2013',
'02-27-2012',
'07-26-2012',
'05-27-2014',
'11-28-2011']

我想按照日期从最新日期开始排列,如何在不使用datetime包的情况下对这个列表内的日期进行排序呢?

>>> date = ['11-22-2013', '01-22-2013', '06-30-2013', '01-29-2014', '06-14-2013', '12-27-2013', '01-07-2014', '05-21-2014', '12-20-2011', '04-17-2012', '01-07-2012', '11-03-2013', '11-06-2012', '03-08-2014', '02-08-2013', '02-27-2012', '07-26-2012', '05-27-2014', '11-28-2011']
>>> sorted(date, key=lambda d:(d[6:],d[:2],d[3:5]), reverse=True)
['05-27-2014', '05-21-2014', '03-08-2014', '01-29-2014', '01-07-2014', '12-27-2013', '11-22-2013', '11-03-2013', '06-30-2013', '06-14-2013', '02-08-2013', '01-22-2013', '11-06-2012', '07-26-2012', '04-17-2012', '02-27-2012', '01-07-2012', '12-20-2011', '11-28-2011']

思路:在比较的时候把年提前,月日放后面,直接按字符串比较大小,那么跟时间大小是一致的

lst.sort(key=lambda x:x[6:]+x[:5])

def csort(d):
    s = d.split('-')
    cs = int(s[2])*10000+int(s[0])*100+int(s[1])
    return cs


b=['11-22-2013',
'01-22-2013',
'06-30-2013',
'01-29-2014',
'06-14-2013',
'12-27-2013',
'01-07-2014',
'05-21-2014',
'12-20-2011',
'04-17-2012',
'01-07-2012',
'11-03-2013',
'11-06-2012',
'03-08-2014',
'02-08-2013',
'02-27-2012',
'07-26-2012',
'05-27-2014',
'11-28-2011']
b.sort(key = csort)
print(b)

自定义一个排序算法,想逆序b.sort(key = csort,reverse=True)

data_list = ['11-22-2013',
'01-22-2013',
'06-30-2013',
'01-29-2014',
'06-14-2013',
'12-27-2013',
'01-07-2014',
'05-21-2014',
'12-20-2011',
'04-17-2012',
'01-07-2012',
'11-03-2013',
'11-06-2012',
'03-08-2014',
'02-08-2013',
'02-27-2012',
'07-26-2012',
'05-27-2014',
'11-28-2011']
mid_list = []
for temp in data_list:
    month, day, year = [int(num) for num in temp.split('-')]
    mid_list.append({'day': day, 'month': month, 'year': year})
mid2_list = sorted(mid_list, key=lambda x: (x['year'], x['month'], x['day']), reverse=True)
ret_list = ['%02d-%02d-%02d' % (temp['month'], temp['day'], temp['year']) for temp in mid2_list]
print(ret_list)