访问嵌套列表中的项:在项之间创建依赖关系,节省内存



我需要跟踪一些类似的过程

time0 = [  [0]  ]  
time1 = [  [ time0 ] , [1]  ]  
time2 = [  [ time1 ] , [2]  ]  
time3 = [  [ time2 ] , [3]  ]  
...
time5 = [  [ time4 ] , [5]  ]  

我喜欢这样是因为:
-我需要time5对象中的内部对象是依赖的,这样,如果我修改time0,所有time1time5都会看到变化
-我创建了一百万个time5对象,我猜之前的过程在内存上会很容易;

现在,我很难访问time5的内部元素。我会硬编码

time5[0][0][0][0][0][0] = 0   
time5[0][0][0][0][1][0] = 1  
time5[0][0][0][1][0] = 2  
time5[0][0][1][0] = 3
time5[0][1][0] = 4
time5[1][0] = 5

但我需要一个函数来为任何任意的timeX对象产生那些索引[0][0][1][0]
我不知道该怎么做。

我也愿意接受任何设计建议
我怀疑我的想法不是最好的。

首先是您正在寻找的解决方案(我想):

def access(time_object, max_lvl, lvl):
    tmp = time_object
    while(lvl < max_lvl):
        tmp = time_object[0]
    return tmp

老实说,我不明白为什么不简单地将每个元素存储在一个数组中。您不需要使用复杂方法的原因是,依赖关系似乎是顺序的:timeN=[[timeN-1],[N]]

假设你把每个时间对象放在一个列表[time1,time2,…,timeN]中,你可以很容易地看到

timeN[0][0][0][0][1][0] = list[N-4][0]

相关内容

最新更新