在元组列表中使用bisect?
问题内容:
我试图找出例如如何在元组列表中使用bisect
[(3, 1), (2, 2), (5, 6)]
如何根据每个元组中的[1]将列表二等分?
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,)
我要插入二等分
idx = bisect.bisect(fst, tup1[1]+tup2[1])
这给了我 unorderable types: int() < tuple()
问题答案:
您可以将值分离到单独的列表中。
from bisect import bisect
data = [(3, 1), (2, 2), (5, 6)]
fst, snd = zip(*data)
idx = bisect(fst, 2)
但是请注意,bisect
要正常工作,您的数据确实应该排序…