import bisect bisect.bisect_left(a, x, lo=0, hi=len(a), *, key=None)
x
- вставляемое значение,a
- список, куда вставляется значение x
,lo=0
, hi=len(a)
- используются для определения подмножества списка a
(проще говоря это срез списка),key=None
- используется для извлечения ключа сравнения из каждого входного элемента (доступен с версии Python 3.10).int
(индекс для вставки элемента в список a
)Функция bisect.bisect_left()
находит индекс вставки элемента x
в отсортированный список a
, соблюдая при этом порядок сортировки.
Аргументы lo
и hi
могут использоваться для определения подмножества списка a
, которое следует учитывать, по умолчанию используется весь список.
Если x
уже присутствует в списке a
, то точка вставки будет перед любыми существующими элементами (слева от них). Возвращаемое значение подходит для использования в качестве первого аргумента list.insert()
при условии, что a
уже отсортирован.
Возвращенная точка вставки i
разделяет массив a на две половины, так что all(val < x for val in a[lo:i])
для левой стороны и all(val >= x for val in a[i:hi])
для правой стороны.
Аргумент key
(доступна с версии Python 3.10) определяет ключевую функцию одного аргумента, которая используется для извлечения ключа сравнения из каждого входного элемента. Значение по умолчанию - None
, это означает, что элементы сравниваются напрямую.
Примеры использования функции bisect.bisect_left()
, смотрите в материале с общей информацией о модуле bisect
.
Изменено в Python 3.10: Добавлен аргумент key
.