按日期Python列表排序

时间:2015-08-07 11:27:32

标签: python

我有一个包含人类可读形式的日期和日期格式的列表,我正在尝试对日期进行排序。

无法返回正确的订单。

return value && value.type === 'Buffer' ? new Buffer(value.data) : value;

1 个答案:

答案 0 :(得分:1)

您可以使用time.strptime

>>> from time import strptime
>>> sorted(d, key = lambda i: strptime(i.split('@')[0], '%d-%m-%Y'))
['7-8-2015@Fri, Aug 07, 2015',
 '8-8-2015@Sat, Aug 08, 2015',
 '9-8-2015@Sun, Aug 09, 2015',
 '10-8-2015@Mon, Aug 10, 2015',
 '11-8-2015@Tue, Aug 11, 2015',
 '12-8-2015@Wed, Aug 12, 2015',
 '13-8-2015@Thu, Aug 13, 2015',
 '14-8-2015@Fri, Aug 14, 2015']

基本上,您可以使用'@'字符进行拆分,然后您的所有字符串都可用于创建struct_time个对象。您可以在key sorted参数中使用lambda来对这些struct_time对象进行排序。

另请注意,您可以使用reverse参数

来反转排序顺序
>>> sorted(d, key = lambda i: strptime(i.split('@')[0], '%d-%m-%Y'), reverse=True)
['14-8-2015@Fri, Aug 14, 2015',
 '13-8-2015@Thu, Aug 13, 2015',
 '12-8-2015@Wed, Aug 12, 2015',
 '11-8-2015@Tue, Aug 11, 2015',
 '10-8-2015@Mon, Aug 10, 2015',
 '9-8-2015@Sun, Aug 09, 2015',
 '8-8-2015@Sat, Aug 08, 2015',
 '7-8-2015@Fri, Aug 07, 2015']