python和树的快速查找,其中节点具有多个属性和值

2024-09-23 22:20:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个非常快的python树对象。查找的速度比内存更重要。叶节点就是我想要的值。 所以,如果给定state=NY,position=3,hourOfDay=2,dayOfWeek=3,我需要用速度得到值=100。带*的节点是叶节点。在

0) root
    1) {state: [NY,LA]}
        2) {howOfDay:[1,2,3,4,5], postion:[1,2,3]}
                             *3) {dayOfWeek:[234]} => value:100
            4) {state: [FL,NV,……rest of the states]}
                5) {howOfDay:[1,6,7,8,9….23]}
                      *6) {dayOfWeek:[1,5,6,7]} => value:120

在我的数据库中,我的数据看起来像这样,属性是json对象。在

^{pr2}$

那么,我应该使用什么python库和树结构来最好地查找值呢?如何将数据转换为最好的快速查找?在


Tags: 数据对象内存节点valuepositionroot速度
1条回答
网友
1楼 · 发布于 2024-09-23 22:20:50

如果你把速度放在内存之上,你可以把你所有的数据放到一个字典里,用一个tuple(state, position, hourOfDay, dayOfWeed)作为键。在

data = dict()

现在,对于每个leave节点,将数据插入字典:

^{pr2}$

然后使用

value = data[state, position, hourOfDay, dayOfWeed]

这比任何树遍历都要快,因为它使用哈希字典的底层优化CPython实现。在

相关问题 更多 >