Упростить условие if

нужно упростить условие if-else

def transport_hub(schedule, days):
    goods = 0
    hub_capacity = 0
    updated_sch = [tuple(map(int, elem.split())) for elem in schedule]
    updated_sch.sort(key=lambda elem: elem[1], reverse=True)
    print(updated_sch)
    for i in range(1, days + 1):
        for elem_sch in updated_sch:
            if i % elem_sch[0] == 0:
                if goods + elem_sch[1] < 0:
                    goods = 0
                    print(goods)
                else:
                    goods += elem_sch[1]
                    print(goods)
            if hub_capacity < goods:
                hub_capacity = goods
    return hub_capacity


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

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

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

Если я правильно понял, нужно упростить этот кусок:

                if goods + elem_sch[1] < 0:
                    goods = 0
                    print(goods)
                else:
                    goods += elem_sch[1]
                    print(goods)

Ну, наверное, можно так:

                goods = max(goods + elem_sch[1], 0):
                print(goods)

Ну и дальше:

            if hub_capacity < goods:
                hub_capacity = goods

Можно тоже использовать max, правда это скорее всего медленнее, хотя короче и понятнее:

            hub_capacity = max(hub_capacity, goods)
→ Ссылка
Автор решения: A_Vaclav
def transport_hub(schedule, days):
    goods = 0
    hub_capacity = []# меням на список - накопитель
    updated_sch = [tuple(map(int, elem.split())) for elem in schedule]
    updated_sch.sort(key=lambda elem: elem[1], reverse=True)
    print(updated_sch)
    for i in range(1, days + 1):
        for elem_sch in updated_sch:
            if i % elem_sch[0] == 0:
                # тут все как @CrazyElf расписал
                goods = max(goods + elem_sch[1], 0)
                print(goods)
                # а вот тут скидываем в накопитель
                hub_capacity.append(goods)
    # берем из накопителя максимальное значение один раз, не в цикле
    return max(hub_capacity)
→ Ссылка