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

2024-03-29 10:33:31 发布

您现在位置: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, ...)

有什么问题吗?你知道吗


Tags: 项目inforindexprintstrparagraphenumerate
1条回答
网友
1楼 · 发布于 2024-03-29 10:33:31

即使列表中有空项,也要使编号连续,只需将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

相关问题 更多 >