Нужно оптимизировать код транспортного хаба

Весь трабл начинается с условия if нужно оптимизировать это условие. Я только начал изучение python не много еще не разбираюсь

def transport_hub(schedule, days):
    schedule_array = [list(map(int, i.split())) for i in schedule]
    max_day_load = []
    hub = 0

    for i in range(days):
        day_load = [v for [x, v] in schedule_array if (i + 1) % x == 0]
        day_load.append(hub)
        if sum(day_load) >= 0:
            hub = sum(day_load)
        else:
            hub = 0
        max_day_load.append(sum([i for i in day_load if i > 0]))
    return max(max_day_load)


print(transport_hub(["2 -2", "3 3"], 7))

Ответы (1 шт):

Автор решения: CrazyElf

Там вообще надо весь код переписывать, наверное, но я пока просто превратил ваш код в рабочий, поменяв содержимое цикла:

    for i in range(days):
        day_load = [v for [x, v] in schedule_array if (i + 1) % x == 0]
        max_day_load.append((hub + sum(x for x in day_load if x > 0), i))
        hub = max(sum(day_load) + hub, 0)
    return max(max_day_load)[1] + 1

Вывод:

6

Суть в том, что в max_day_load нужно добавлять только положительный баланс за день, а потом уже менять содержимое hub на общий баланс за день. Остальное в моём коде - просто оптимизации вашего кода с помощью функции max.

→ Ссылка