list = [{'name':'test1', 'start_time': '05-24-2015, 05:47 PM'}, {'name':'test2', 'start_time': '04-24-2018, 02:23 PM'}, {'name':'test3', 'start_time': '06-23-2018, 01:41 PM'}]
我尝试过下面的解决方案,但忽略了有意义的年份。我想在排序之前我需要删除破折号、空格和逗号?
list = sorted(list, k['time_start'], reverse=True)
05-24-2015 在后面 04-24-2018
05-24-2015
04-24-2018
YYYY-MM-DD
strptime 函数是实现它的最简单方法(没有类似的第三方库 dateutil
strptime
dateutil
k['time_start'] k 值并返回相应的排序键。你可以直接用 lambda def
k['time_start']
k
lambda
def
也, time_start start_time key 排序函数的参数仅在python 3.x中是关键字。
time_start
start_time
key
import datetime def our_key(d): return datetime.datetime.strptime(d['start_time'], '%m-%d-%Y, %I:%M %p')
list = sorted(list, key=our_key, reverse=True)
当我们在做的时候,还有一些事情:
list
sort