如果您的数据没有排序,您也可以将日期存储在collections.defaultdict(),然后取最大值datetime:
from collections import defaultdict
from datetime import datetime
data = [
'2018-12-14 14:36:00',
'2018-12-15 02:00:00',
'2018-12-15 04:48:00',
'2018-12-16 06:12:00',
'2018-12-16 11:28:00',
'2018-12-16 23:52:00'
]
d = defaultdict(list)
for item in data:
date, _ = item.split()
d[date].append(item)
print([max(v, key=lambda x: datetime.strptime(x, "%Y-%m-%d %H:%M:%S")) for _, v in d.items()])
# ['2018-12-14 14:36:00', '2018-12-15 04:48:00', '2018-12-16 23:52:00']
上面使用datetime.datetime.strptime() 来获取最大日期时间,如key 参数中所指定。
如果您的数据已经排序,您可以利用itertools.groupby():
from itertools import groupby
data = [
'2018-12-14 14:36:00',
'2018-12-15 02:00:00',
'2018-12-15 04:48:00',
'2018-12-16 06:12:00',
'2018-12-16 11:28:00',
'2018-12-16 23:52:00'
]
print([list(g)[-1] for _, g in groupby(data, key=lambda x: x.split()[0])])
# ['2018-12-14 14:36:00', '2018-12-15 04:48:00', '2018-12-16 23:52:00']