我有一个大型的查找表,其中键是一个区间:
| min | max | value |
|-----|-----|---------|
| 0 | 3 | "Hello" |
| 4 | 5 | "World" |
| 6 | 6 | "!" |
| ... | ... | ... |
目标是创建一个查找结构my_lookup
,该结构根据整数所在范围返回一个值。例如:2 -> "Hello"
、3 -> "Hello"
、4 -> "World"
。
以下是实现所需的代码:
d = {
(0, 3): "Hello",
(4, 5): "World",
(6, 6): "!"
}
def my_lookup(i: int) -> str:
for key, value in d.items():
if key[0] <= i <= key[1]:
return value
但是循环遍历所有条目似乎效率低下(实际查找表包含400,000行)。有更快的方法吗?