小编Nig*_*ade的帖子

使用范围作为字典中的键值,最有效的方法是什么?

我一直想知道如果定义范围的给定值不重叠,是否有某种数据结构或巧妙的方法使用字典(O(1) 查找)来返回值。到目前为止,我一直在想,如果范围有一些恒定的差异(0-2、2-4、4-6 等),或者可以在 O(log(n )) 时间。

因此,例如给定一本字典,

d = {[0.0 - 0.1): "a",
     [0.1 - 0.3): "b",
     [0.3 - 0.55): "c",
     [0.55 - 0.7): "d",
     [0.7 - 1.0): "e"}
Run Code Online (Sandbox Code Playgroud)

它应该返回,

d[0.05] 
>>> "a"
d[0.8]
>>> "e"
d[0.9]
>>> "e"
d[random.random()] # this should also work
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这样的目标?感谢您对此的任何回应或解答。

python dictionary range data-structures

6
推荐指数
2
解决办法
5008
查看次数

标签 统计

data-structures ×1

dictionary ×1

python ×1

range ×1