Raymond Hettinger <raymond.hettin...@gmail.com> added the comment:

I there is a misunderstanding here.  The bisect functions never point *to* a 
value.  Instead, they are documented to return "insertion points".  Those 
always occur just before or after a specific value:

values:              10   20   30   30   30   40   50
insertion points:   |   |    |    |    |    |    |    |
                    0   1    2    3    4    5    6    7
bisect_left(30) -------------^
bisect_right(30) ---------------------------^

As you can see, bisect_left() does in fact point JUST BEFORE the 30.

Note this is also how slicing works.  Here's an example:

    >>> from bisect import bisect_left, bisect_right
    >>> s = [10, 20, 30, 30, 30, 40, 50]
    >>> i = bisect_left(s, 30)
    >>> j = bisect_right(s, 30)
    >>> s[i : j]
    [30, 30, 30]

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue44227>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to