Если ваши данные не отсортированы, вы также можете сохранить даты в 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']