Условно имеются два списка buy и sell, как реализовать следующее если разница между первым элементом списка buy и первым элементом sell ,больше нуля то вместо первого элемента списка buy
должна подставлятся эта разность, если разность равна нулю то первый элемент списка buy удаляется, если же разница отрицательна то первый элемент списка buy удаляется а разность прибавляется к следующему элементу этого списка и так далее,
желательно что бы код описывал бесконечное множество таких операций.
Вот пример: мы купили несколько яиц несколькими операциями
,это можно записать как [12,23,45,21,31,56,11,1,3,6,8,3,232,5], а потом продали их в несколько операций, это можно записать так [1,35,57,35,25,35],
дак вот нам надо узнать сколько яиц и в каком они порядке остались то есть ответ должен быть [11,1,3,6,8,3,232,5], при этом элементы списка продаж нельзя сумировать, так как там потенциально может находится цена продажи яиц (так же как и в списке с покупками цены покупки)
Я попробывал это реализовать вот что у меня получилось:
Версия кода работающая только если сумма двух первых элементов списка buy < первого элемента списка sell:
if a > 0:
bue.remove(bue[0])
bue.insert(0, a)
print(bue)
elif a == 0:
bue.remove(bue[0])
print(bue)
else:
bue.remove(bue[0])
print(bue)
bue.insert(0, bue[0] + a)
print(bue)
bue.remove(bue[1])
print(bue)
Попытка сделать этот код пригодным для условно бесконечных списков:
def fifo(position):
if a > 0:
bue.remove(bue[int(position)])
bue.insert(int(position), a)
print(bue)
elif a == 0:
bue.remove(bue[int(position)])
print(bue)
else:
fifo(int(position) + 1)
fifo(0)