首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python数组中对日期进行排序

在python数组中对日期进行排序
EN

Stack Overflow用户
提问于 2011-03-02 19:29:42
回答 9查看 88.7K关注 0票数 24

如何在Python2.4上对以下日期数组进行排序

代码语言:javascript
复制
 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']
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-03-02 19:36:57

代码语言:javascript
复制
sorted(timestamps, key=lambda d: map(int, d.split('-')))
票数 36
EN

Stack Overflow用户

发布于 2011-03-02 19:33:22

代码语言:javascript
复制
>>> 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']
票数 61
EN

Stack Overflow用户

发布于 2011-03-02 19:40:32

就这么做吧:

代码语言:javascript
复制
timestamps.sort()

结果:

代码语言:javascript
复制
['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等等

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5166842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档