python: найти значение в пределах диапазона в массиве float

У меня есть следующий отсортированный список python, хотя возможны несколько значений:

[0.0943200769115388, 0.17380131294164516, 0.4063245853719435, 0.45796523225774904, 0.5040225609708342, 0.5229351852840304, 0.6145136350368882, 0.6220712583558284, 0.7190096076050408, 0.8486436998476048, 0.8957381707345986, 0.9774325873910711, 0.9832076130275351, 0.985386554764682, 1.0] 

Теперь я хочу знать индекс в массиве, где может выпадать определенное значение:

Например, значение 0.25 упадет в индекс 2 поскольку оно находится между 0,173 и 0,40. Думаю, я могу пройти через список и сделать это в цикле for, но мне было интересно, есть ли лучший способ сделать это, что может быть более эффективным с точки зрения вычислений. Я создаю этот массив один раз, но вам нужно выполнить множество поисков.

2 Solutions collect form web for “python: найти значение в пределах диапазона в массиве float”

 >>> vals = [0.0943200769115388, 0.17380131294164516, 0.4063245853719435, 0.45796523225774904, 0.5040225609708342, 0.5229351852840304, 0.6145136350368882, 0.6220712583558284, 0.7190096076050408, 0.8486436998476048, 0.8957381707345986, 0.9774325873910711, 0.9832076130275351, 0.985386554764682, 1.0] >>> import bisect >>> bisect.bisect(vals, 0.25) 2 

Если вы знаете, что список уже отсортирован, то решение для учебника должно выполнить двоичный поиск. Вы сохраняете две границы индекса, мин и макс. Инициализируйте их до 0 и len – 1. Затем установите mid (min + max) / 2. Сравните значение с индексом mid с целевым значением. Если это меньше, установите min в середину + 1. Если это больше, установите max в середину 1. Повторите, пока вы не найдете значение или до max <min, и в этом случае вы найдете нужный индекс в O ( log (n)).

  • Неточный логарифм в Python
  • Запрос значений с плавающей запятой в SQLAlchemy
  • Вызов / выбор переменных (float value) с использованием пользовательского ввода в Python
  • Другой вопрос с плавающей запятой
  • Точность текста с плавающей запятой Python / numpy
  • Python float to ratio
  • Как извлечь плавающее число из строки
  • Проверьте, находится ли float рядом с любым поплавком, хранящимся в массиве
  •  
    Interesting Posts for Van-Lav

    использование beautifulsoup 4 для xml вызывает странное поведение (проблемы с памятью?)

    Преобразование целочисленного в двоичный код в python

    Как выйти при просмотре справки python, например help (os.listdir)

    Функция импорта внутри функции python скрывает существующую переменную

    Python синхронизирует соединение сокета

    2D Gaussian Fit для интенсивностей в определенных координатах в Python

    Добавление пользовательского тега в Sphinx

    Многопоточный многоклиентский сервер в python

    Есть ли простой способ запросить URL-адрес в python и НЕ следовать переадресации?

    UnicodeEncodeError: кодек ascii не может кодировать символ u '\ xe9' в позиции 7: порядковый номер не в диапазоне (128)

    Нарезка и назначение значений мультииндексированных данных pandas с уникальными последовательными индексами

    Как очистить веб-сайт с помощью защиты сукури

    Как выполнить запрос с `WHERE value IN list` в Python Peewee ORM?

    Проблема с django-pytest setup_method

    Как упаковать скрипт Python из командной строки

    Python - лучший язык программирования в мире.