Python字典键作为数字集

Han*_*ank 6 python dictionary key minmax

我想在python中构建一个字典,其中的键是0到1之间的最小/最大值对.例如:

myDict = {(0, .5): 'red', (.5, 1): 'orange'}
Run Code Online (Sandbox Code Playgroud)

我希望能够调用字典中的条目与多家集合[最小值,最大值).

>>> myDict[.464897]
'red'
>>> myDict[.5]
'orange'
Run Code Online (Sandbox Code Playgroud)

我觉得可能有一个很好的,简单的方法来做到这一点.然而,这是难以捉摸的,因为我仍然在我的python纸尿裤.

jam*_*lak 11

假设间隔不重叠,则没有间隙,并且使用二进制搜索对它们进行排序:

>>> keys = [0.5, 1] # goes from 0 to 1, specify end interval
>>> vals = ['red', 'orange']
>>> import bisect
>>> vals[bisect.bisect_right(keys, 0.464897)]
'red'
>>> vals[bisect.bisect_right(keys, 0.5)]
'orange'
Run Code Online (Sandbox Code Playgroud)