【发布时间】:2015-08-08 09:49:36
【问题描述】:
假设我有一个OrderedDict:
a = OrderedDict([(5, 'a'), (7, 'b'), (10, 'c')])
有没有一种有效的方法来获取键超过某个阈值的第一个值,而不遍历所有键?
例子:
>>> get_first(a, 6)
'a'
>>> get_first(a, 3)
None
>>> get_first(a, 8)
'b'
我想避免自己实现二进制搜索。是否有有效的开箱即用实现?
【问题讨论】:
-
“Python 二进制搜索” 的第一击:
bisect。来吧。 -
请注意,“有序”并不意味着“排序”。
-
如果键没有按排序顺序,据我所知,不可能存在比遍历键更快的算法。
标签: python key threshold ordereddictionary