Один из подходов может быть следующим:
Если списки сохраняют свой порядок (всегда в порядке возрастания) и в обоих списках одинаковое количество элементов, вы можете преобразовать первый список в пары (кортежи) и сравнить новое число (7), если оно больше, чем первый элемент кортежа, меньше, чем второй.
data = [5,10,15,20,25]
price= [3,2.9,2.7,2.4,2.1]
tuple_list = [(x, y) for x, y in zip(data, data[1:])]
# [(5, 10), (10, 15), (15, 20), (20, 25)]
Тогда вы можете оперировать индексами кортежей: (но вы можете изменить его по своему усмотрению)
sum_to_calc = 0
new_number = 7
for x in tuple_list:
if x[0] < new_number and x[1] > new_number:
for index, y in enumerate(data):
if x[0] == y or x[1] == y :
sum_to_calc += price[index]
print(sum_to_calc/2)