Как получать значения из списка по условию?
Есть список:
a = ['12.05.2020', '16.05.2020', '12.05.2019', '19.05.2019', '20.05.2019',
'19.05.2020', '22.05.2020', '27.05.2020', '14.05.2020', '25.05.2019']
И есть переменная с годом: b = '2020'
Надо из списка a получить самую маленькую дату с этим годом.
Результат должен быть таким: 12.05.2020
Ответы (2 шт):
Автор решения: Victor VosMottor
→ Ссылка
import datetime
min(d for d in map(lambda i: datetime.datetime.strptime(i, '%d.%m.%Y'), filter(lambda el: el.split('.')[-1] == '2020', a)) if isinstance(d, datetime.date))
Автор решения: MaxU
→ Ссылка
Альтернативный вариант:
from datetime import datetime
res = min((x for x in a if x.endswith(".2020")), key=lambda x: datetime.strptime(x, '%d.%m.%Y'))