【问题标题】:Can you use bisect on a list of pairs?您可以在对列表中使用 bisect 吗?
【发布时间】: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


猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
相关资源
最近更新 更多