import bisect bisect.insort_right(a, x, lo=0, hi=len(a), *, key=None) bisect.insort(a, x, lo=0, hi=len(a))
x
- вставляемое значение,a
- список, куда вставляется значение x
,lo=0
, hi=len(a)
- используются для определения подмножества списка a
(проще говоря это срез списка),key=None
- используется для извлечения ключа сравнения из каждого входного элемента (доступен с версии Python 3.10).Функция insort()
и insort_right()
аналогична функции insort_left()
, но вставляет x
в отсортированный список a
после любых уже существующих записей x
.
Аргумент key
(доступна с версии Python 3.10) определяет ключевую функцию одного аргумента, которая используется для извлечения ключа сравнения из каждого входного элемента. Значение по умолчанию - None
, это означает, что элементы сравниваются напрямую.
Эта функция сначала запускает bisect_right()
, чтобы найти точку вставки. Затем он запускает метод list.insert()
для вставки x
в отсортированный список a
, сохраняя отсортированный порядок.
Имейте в виду, что при поиске O(log n)
преобладает медленный шаг вставки O(n)
.
Примеры использования функции bisect.insort()
и bisect.insort_right()
, смотрите в материале с общей информацией о модуле bisect
.
Изменено в Python 3.10: Добавлен аргумент key
.