В качестве входных данных у меня есть список списков (пример ниже) - и я пытаюсь получить следующее:
1) Если текущий месяц находится в первой половине года, то для i ввходные даты добавляют current_year к концу i.А также для i в year_second_half добавить yr + 1 к i во входных датах, которые попадают в year_second_half
Пример - «5 августа 19:45» становится «5 августа 19:45 2018» и «2 января 15:00»'становится' 2 января 15:00 2019 '
2) Если текущий месяц находится в year_second_half, то для i в input_dates добавьте текущий год в конец i, где месяц находится во второй половине года.А также для всех месяцев в i, которые приходятся на первое полугодие года, добавьте год - 1 к тем
Пример (предположим, месяц - май) - «6 апреля 15:00» становится «6 апреля 15:00 2018»и '5 августа 19:45 2017'
currentYear = datetime.now().year
this_yr = currentYear
currentMonth = datetime.now().month
this_month = currentMonth
year_first_half = ['August', 'September', 'October', 'November', 'December']
year_second_half = ['January', 'February', 'March', 'April', 'May']
input_dates = [['5th August 19:45','8th December 12:30','16th December 16:00',
'3rd January 20:00','12th January 15:00','19th January 15:00','30th January 20:00',
'2nd February 15:00'],['9th December 15:00','23rd December 15:00',
'27th December 20:00','2nd January 15:00','9th January 15:00',
'6th April 15:00','27th April 15:00','4th May 15:00','12th May 15:00']]
newlist = []
for x in input_dates:
for i in x:
for month in year_first_half:
if month in i and this_month in year_first_half:
i = (i + ' {}').format(this_yr)
elif month in i and this_month in year_second_half:
i = (i + ' {}').format(this_yr - 1)
for month in year_second_half:
if month in i and this_month not in year_second_half:
i = (i + ' {}').format(this_yr + 1)
elif month in i and this_month in year_second_half:
i = (i + ' {}').format(this_yr)
newlist.append(i)
print(newlist)
Текущий вывод -
['5th August 19:45 2018', '8th December 12:30 2018', '16th December 16:00 2018', '3rd January 20:00 2019', '12th January 15:00 2019', '19th January 15:00 2019', '30th January 20:00 2019', '2nd February 15:00 2019', '9th December 15:00 2018', '23rd December 15:00 2018', '27th December 20:00 2018', '2nd January 15:00 2019', '9th January 15:00 2019', '6th April 15:00 2019', '27th April 15:00 2019', '4th May 15:00 2019', '12th May 15:00 2019']
Кажется, это работает, но я хотел бы вывести список списков в основном точно так жеформат и порядок, в котором я его получил, за исключением добавления года, как показано выше.
Когда я запускаю свой код, я просто получаю один список.Есть лучший способ сделать это?Цель этой задачи - просто обновить список с правильными годами.