I'm trying to figure out how to use bisect in a list of tuples for example
[(3, 1), (2, 2), (5, 6)]
How can I bisect this list according to the [1] in each tuple?
list_dict [(69, 8), (70, 8), ((65, 67), 6)]
tup1,tup2 (69, 8) (70, 8)
list_dict [((65, 67), 6)]
fst, snd ((65, 67),) (6,)
And I'm inserting to bisect
idx = bisect.bisect(fst, tup1[1]+tup2[1])
Which gives me unorderable types: int() < tuple()
In some cases just the simple
bisect(list_of_tuples, (3, None))
will be enough.
Because None
will compare less than any integer, this will give you the index of the first tuple starting with at least 3, or len(list_of_tuples)
if all of them are smaller than 3. Note that list_of_tuples
is sorted.