我有一个包含人类可读形式的日期和日期格式的列表,我正在尝试对日期进行排序。
无法返回正确的订单。
return value && value.type === 'Buffer' ? new Buffer(value.data) : value;
答案 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']