我一直想知道如果定义范围的给定值不重叠,是否有某种数据结构或巧妙的方法使用字典(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)
有没有办法实现这样的目标?感谢您对此的任何回应或解答。