Найти элементы списка между двумя границами (которые сформированы из других двух списков граничных случаев) очень эффективным способом - PullRequest
0 голосов
/ 04 марта 2020

Учитывая список чисел и последовательностей, которые представляют граничные диапазоны для списка чисел, найдите числа, которые соответствуют различным границам (включительно). Например, учитывая 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...