在记住索引时迭代多维列表

时间:2015-07-15 15:42:54

标签: python list iteration

我有4维数组,用于存储5维特征空间中的点值。幸运的是,所有功能都可以用整数来描述,从0开始(因此,可以通过列表索引进行编码)。当我处理我的数据时,我做了类似的事情(请注意,我不仅需要值,还需要所有相应的功能):

for f1 in range(len(data)):
    for f2 in range(len(data[f1])):
        for f3 in range(len(data[f1][f2])):
            for f4 in range(len(data[f1][f2][f3])):
                for f5 in range(len(data[f1][f2][f3][f4])):
                    value = data[f1][f2][f3][f4][f5]
                    process_point(f1, f2, f3, f4, f5, value)

然而,由于筑巢水平高,这看起来有点难看。有没有办法重构此代码以减少嵌套?扁平函数有不同的实现方式;但是,它们只能保留值,而不是索引。如果解决方案不会导致性能大幅下降,那么它也会很好。

0 个答案:

没有答案