Сообщить об ошибке.

Функция insort() и insort_right() модуля bisect в Python

Вставка в отсортированный список ПОСЛЕ существующего элемента

Синтаксис:

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.