In brief
bisect_left() finds an insertion position in a sorted list. For [10, 20, 30], searching for 25 gives position 2 even though 25 is absent.
Useful to know
bisect_left() finds an insertion position in a sorted list. For [10, 20, 30], searching for 25 gives position 2 even though 25 is absent. [1]
To establish membership, check the boundary and value at that position. The list must already follow the same ordering. With insort(), locating the position is efficient, but shifting elements for insertion still has a cost.
Sources
For further detail and to check the information: