Skip to main content
 首页 » 编程设计

python之是否有允许高效范围查询的 python 数据结构

2025年05月04日10kerrycode

比如说,你有一个整数列表,例如

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]