У меня есть своя сложная проблема, с которой я с трудом переворачиваю голову.вычесть список списков из списка списков с условными аргументами
У меня есть два списка списков:
firstList = [[0, 9], [0, 4], [0]]
secondList = [[18], [19, 7], [20]]
Я хотел бы вычесть значение (ы) в firstList
от значений в secondList
в порядке возрастания, но только, если значения в firstList
не уже «используется». Например:
thirdList = [0,4]
fourthList = [19,7]
emptyList = []
emptyList.append(fourthList-thirdList]
print(emptyList)
>>>[7,3]
В этом случае 19
не используется, потому что не было никаких значений в thirdList между предыдущим значением в fourthList и 19
Я имею в виду что-то вроде этого (хотя он быстро разлагается в псевдокоде)
firstList = [[0, 9], [0, 4], [0]]
secondList = [[18], [19, 7], [20]]
emptyList = [ [] for y in range(3) ]
for x in range(3) :
#for smallest value in secondList[x], subtract all smaller values in firstList and then delete them, append values to emptyList[x]
#for next smallest value in secondList[x], subtract all smaller values in firstList and then delete them, append values to emptyList[x]
#repeat until firstList is empty, then exit loop
print(emptyList)
>>>[[9, 18], [3, 7], [20]]
это исключило бы использование 19
в secondList [1], потому что 0
и 4
уже удалены после того, как subtr действовал из 7