This module provides support for maintaining a list in sorted order
without having to sort the list after each insertion. For long lists
of items with expensive comparison operations, this can be an
improvement over the more common approach. The module is called
bisect because it uses a basic bisection algorithm to do its
work. The source code may be most useful as a working example of the
algorithm (the boundary conditions are already right!).
The following functions are provided:
- bisect_left(list, item[, lo[, hi]])
-
Locate the proper insertion point for item in list to
maintain sorted order. The parameters lo and hi may be
used to specify a subset of the list which should be considered; by
default the entire list is used. If item is already present
in list, the insertion point will be before (to the left of)
any existing entries. The return value is suitable for use as the
first parameter to
list.insert()
. This assumes that
list is already sorted.
New in version 2.1.
- bisect_right(list, item[, lo[, hi]])
-
Similar to bisect_left(), but returns an insertion point
which comes after (to the right of) any existing entries of
item in list.
New in version 2.1.
- bisect(...)
-
Alias for bisect_right().
- insort_left(list, item[, lo[, hi]])
-
Insert item in list in sorted order. This is equivalent
to
list.insert(bisect.bisect_left(list, item,
lo, hi), item)
. This assumes that list is
already sorted.
New in version 2.1.
- insort_right(list, item[, lo[, hi]])
-
Similar to insort_left(), but inserting item in
list after any existing entries of item.
New in version 2.1.
- insort(...)
-
Alias for insort_right().
Subsections
See About this document... for information on suggesting changes.