Учитывая список чисел и последовательностей, которые представляют граничные диапазоны для списка чисел, найдите числа, которые соответствуют различным границам (включительно). Например, учитывая number_list = [3,8,9] lowerboundary_numbers = [3,6] и верхняя граница = [4,10]. Теперь мы пытаемся найти числа из number_list, которые соответствуют в диапазоне [3,4] в первом запуске, а затем числа, которые соответствуют в диапазоне и [6,10] во втором запуске, и вернуть список чисел, которые соответствуют в границах двух трасс. В этом случае 3 - это единственное число, которое подходит в [3,4], а 8 и 9 - в [6,10], поэтому мы возвращаем [1,2]. Приведенный ниже код работает, но он недостаточно быстр.
def fun(number_list, lowerboundary, upperboundary):
return_array = [0] * len(lowerboundary)
for a in number_list:
for b in range(len(lowerboundary)):
if lowerboundars[b] <= a <= upperboundary[b]:
return_array[b] += 1
return return_array
print(fun([3, 8, 9], [3,6], [4,10]))
#outputs [1,2]