如何在Python2.4上对以下日期数组进行排序
timestamps = ['2011-06-2', '2011-08-05', '2011-02-04', '2010-1-14', '2010-12-13', '2010-1-12', '2010-2-11', '2010-2-07', '2010-12-02', '2011-11-30', '2010-11-26', '2010-11-23', '2010-11-22', '2010-11-16']发布于 2011-03-02 19:36:57
sorted(timestamps, key=lambda d: map(int, d.split('-')))发布于 2011-03-02 19:33:22
>>> import datetime
>>> dates = [datetime.datetime.strptime(ts, "%Y-%m-%d") for ts in timestamps]
>>> dates.sort()
>>> sorteddates = [datetime.datetime.strftime(ts, "%Y-%m-%d") for ts in dates]
>>> sorteddates
['2010-01-12', '2010-01-14', '2010-02-07', '2010-02-11', '2010-11-16', '2010-11-
22', '2010-11-23', '2010-11-26', '2010-12-02', '2010-12-13', '2011-02-04', '2011
-06-02', '2011-08-05', '2011-11-30']发布于 2011-03-02 19:40:32
就这么做吧:
timestamps.sort()结果:
['2010-1-12',
'2010-1-14',
'2010-11-16',
'2010-11-22',
'2010-11-23',
'2010-11-26',
'2010-12-02',
'2010-12-13',
'2010-2-07',
'2010-2-11',
'2011-02-04',
'2011-06-2',
'2011-08-05',
'2011-11-30']年-月-日的顺序允许这样的排序,因为当时间流逝时,一天在一个月之前发生变化,一个月在一年之前发生变化。
这就像一个数字:单位数字(最右边的数字)在十位数字之前变化,而后者在百位数字之前变化,当1逐渐增加时。
sort ()从左到右处理:如果要排序的两个字符串中的一个精确位置的字符相同,它将检查下面位置的两个字符串中的两个字符,以确定逻辑上在前的是哪一个。
加上'0‘< '1' is True,'1’< '2' is True等等
https://stackoverflow.com/questions/5166842
复制相似问题