Как получать значения из списка по условию?

Есть список:

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'))
→ Ссылка