Python:神秘的跳过列表中的第一项?

时间:2017-04-03 22:51:24

标签: python

我有一个3D列表haaros_seforim,我只是在迭代它以检查内容。

for sindex, sefer in enumerate(haaros_seforim):
    for hindex, haarah in enumerate(sefer):
        for pindex, paragraph in enumerate(haarah):
            print "INDEX\/ "+str(sindex)+" "+str(hindex)+" "+str(pindex)
            print paragraph

但奇怪的是,似乎对于第二个D我们从第二个项目开始,或者索引-1:

INDEX\/ 0 1 0
[...contents...]
INDEX\/ 0 2 0
[...contents...]

事实上,似乎这也发生在巢两个项目(1 1 02 1 0),然后是第四个正常(3 0 0),第五个和最后一个跳过两个(4 2 0)。

我尝试使用过滤器进行测量,但这似乎没有帮助:

filter(lambda(x): x is not None, ...)

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

即使列表中有空白项目也要连续编号,只需使用filter和第一个参数None来消除任何虚假的内容:

for sindex, sefer in enumerate(haaros_seforim):
    for hindex, haarah in enumerate(sefer):
        for pindex, paragraph in enumerate(filter(None, haarah)):
            print "INDEX\/ "+str(sindex)+" "+str(hindex)+" "+str(pindex)
            print paragraph