比如说,你有一个整数列表,例如
foo = [3,9,23,54,77,123,...]
是否有一个高效的数据结构可以允许像这样的查询
x = everything in foo between 10 and 100
这样
x == [23,54,77]
或者 x = 一切 < 50
给予
x = [3,9,23]
等等?
请您参考如下方法:
假设这些整数已经排序,这不是您想要的数据结构,而是一种算法:即二分查找。在 Python 中,这是由 bisect module 提供的。 .
因此,例如,要查找小于 50 的所有成员:
from bisect import bisect_left
i = bisect_left(foo, 50)
result = foo[:i]
