Изменить значение в списке с помощью словаря
Список формата:
dates = ['3/января/2022', '10/февраля/2022', '17/марта/2022']
и словарь с месяцами:
months = {'января': '01', 'февраля': '02', 'марта': '03'}
Чтобы итоговый результат был
['3/01/2022', '10/02/2022', '17/03/2022']
Ответы (3 шт):
Автор решения: Павел
→ Ссылка
Самое простое - наверное, так:
dates = ['3/января/2022', '10/февраля/2022', '17/марта/2022']
months = {'января': '01', 'февраля': '02', 'марта': '03'}
changed_dates = [date.replace(key, value)
for date in dates
for key, value in months.items()
if key in date]
print(changed_dates)
Вывод:
['3/01/2022', '10/02/2022', '17/03/2022']
Автор решения: SergFSM
→ Ссылка
можно регулярку задействовать:
from re import sub
dates = ['3/января/2022', '10/февраля/2022', '17/марта/2022']
months = {'января': '01', 'февраля': '02', 'марта': '03'}
f = lambda m: months[m[0]]
[sub(r'[а-я]+', f, i) for i in dates]
>>>
['3/01/2022', '10/02/2022', '17/03/2022']
Автор решения: Точка Слэш
→ Ссылка
К строке можно применить метод .translate(),где в качестве параметра будет передан словарь с тем что заменить(ключ) на что(значение)
date = '01.января.2023'
date = date.translate({'января':'01'})