как все это сделать по отдельности я примерно знаю, но когда начинаю собирать все в одно, начинаются ошибки:
# так ищем наименьшее def nearest(lst,target): return min(lst,key=lambda x: abs(x-target)) # и как то потом все запутывается def hh(i,data): for u in range(data.index(i),0,-1): # это позволяет начинать отсчет обратно от элемента b=nearest(data[0:data.index(i)],i) # тут я все похерил b.append(data[data.index(i)]-data[u]) # все потеряно print(u,data[u]) for i in data: hh(i,data)
упрощенный пример когда мы ищем значения полностью равные друг другу (а в задаче ищем наиболее близкое из всех) :
data=[1,2,2,4,5,2] 1 0 0 2 1 0 2 2 1 4 3 0 5 4 0 2 5 2
таблица: искомый элемент, индекс искомого элемента , индекс найденного элемента