Оптимизация алгоритма поиска максимальной даты. модуль datetime python
Написал такой код нахождения максимальной даты из всех в списке. заинтересовался насчет оптимизации алгоритма. Каким образом можно уменьшить время выполнения? где можно потренироваться в написании алгоритмов, не считая проект Эйлера (слишком уж замудрено), какую книгу можно почитать, когда уже чувствуешь себя чуть выше новичка и не хочешь в очередной раз читать книгу, наподобие "как легко выучить python"
from datetime import date
def maxDate(dateList):
maxDate = None
for i, _ in enumerate(dateList):
if i == 0:
maxDate = dateList[i]
if i == len(dateList)-1:
continue
if maxDate < dateList[i+1]:
maxDate = dateList[i+1]
return maxDate
print(maxDate([date(2141, 2, 4),date(2089, 10, 6),date(2034, 11, 4),date(2017, 3, 31), date(2087, 3, 3), date(2051, 2, 4)]))
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
как вариант:
print(max(date(2141, 2, 4),date(2089, 10, 6),date(2034, 11, 4),date(2017, 3, 31), date(2087, 3, 3), date(2051, 2, 4)))
или так:
print(max(*[date(2141, 2, 4),date(2089, 10, 6),date(2034, 11, 4),date(2017, 3, 31), date(2087, 3, 3), date(2051, 2, 4)]))
Автор решения: n1tr0xs
→ Ссылка
Если вас интересует именно оптимизация:
def maxDate(dateList):
maxDate = dateList[0] # выбирает максимальной первую дату
for date in dateList: # по очереди перебираем даты
if date > maxDate: # если дата больше, чем записанная в maxDate
maxDate = date # пишем ее в maxDate
return maxDate