字典与范围作为关键

时间:2016-01-11 09:25:37

标签: python dictionary range

在Python中,我如何从一系列值映射到一个具体值? 基本上,我想要一个字典,我可以用数字填充范围和索引:

rd = rangedict()
rd[(0, 10)] = 5
print rd[4] # prints 5
print rd[6] # prints 5
rd[(5, 15)] = 20
print rd[4] # prints 5
print rd[6] # prints 20

2 个答案:

答案 0 :(得分:2)

您可以使用间隔树

pip install intervaltree

from intervaltree import Interval, IntervalTree
rd = IntervalTree()

rd[0:10] = 5
print rd[4]
print rd[5]

https://pypi.python.org/pypi/intervaltree

答案 1 :(得分:0)

感谢您的评论,我可以使用intervaltree包找到解决方案。

from intervaltree import IntervalTree

tree = IntervalTree()
tree.addi(0, 10, 5)
print tree[4]
print tree[6]

# need to chop before, as the library stores both intervals otherwise
tree.chop(5, 15)
tree.addi(5, 15, 20)
print tree[4]
print tree[6]