【发布时间】:2022-06-10 18:11:33
【问题描述】:
我有一个配对列表,其中配对中的第二个值按排序顺序排列。这是一个玩具示例:
import random
pairs = []
offset = 0
for i in range(10):
pairs.append(("blah", offset))
offset += random.randint(0,50)
这给出了:
[('blah', 0),
('blah', 25),
('blah', 75),
('blah', 122),
('blah', 141),
('blah', 142),
('blah', 186),
('blah', 210),
('blah', 250),
('blah', 264)]
我希望能够使用一个值进行查询,比如222,并获得第二个值尽可能接近但不大于222 的索引对。在这种情况下,输出应该是7。
由于我的配对列表会很长,我希望使用bisect。这可能吗?
【问题讨论】:
-
鉴于你的例子 -
bisect无论如何都不合适,因为 186 打破了排序顺序......
标签: python binary-search