python是循环嵌套的实例

2024-04-27 03:41:40 发布

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

python向下钻取“PyPDF2”的嵌套列表最有效的方法是什么。通用目的地'并列出对象以获取列表的最后一个实例? (获取PDF大纲及其页码的所有级别)。你知道吗

pdfread = p2.PdfFileReader(list_files)
s = pdfread.outlines
chapters = []
pages = []
levels = []
files = []

for x in s:
    files.extend([x])
    if isinstance(x, (int, list, float, complex)):
        for y in x:
            if isinstance(y, (int, list, float, complex)):
                for z in y:
                    if isinstance(z, (int, list, float, complex)): 
                        for a in z:
                            if isinstance(a, (int, list, float, complex)): 
                                for c in a:
                                    if isinstance(c, (int, list, float, complex)): 
                                        print(c.title)
                                    else:
                                        chapters.extend([c.title])
                                        pages.extend([pdfread.getDestinationPageNumber(c)])
                                        levels.extend(['5'])

                            else:
                                chapters.extend([a.title])
                                pages.extend([pdfread.getDestinationPageNumber(a)])
                                levels.extend(['4'])

                    else:
                        chapters.extend([z.title])
                        levels.extend(['3'])
                        pages.extend([pdfread.getDestinationPageNumber(z)])
            else:
                chapters.extend([y.title])
                levels.extend(['2'])
                pages.extend([pdfread.getDestinationPageNumber(y)])
    else:
        chapters.extend([x.title])
        levels.extend(['1'])
        pages.extend([pdfread.getDestinationPageNumber(x)])

df = pd.DataFrame({'chapters': chapters, 'pages' : pages, 'levels' : levels})
df.head(44)

Tags: inforiftitlepagesfloatelselist
1条回答
网友
1楼 · 发布于 2024-04-27 03:41:40

只需定义一个递归函数:

def nested_is_instance_check(s, level, pages):
    level +=1
    if isinstance(x, (int, list, float, complex)):
        for x in s:
            nested_is_instance_check(s, level, pages)
    else:
        chapters.extend([y.title])
        levels.extend(['level'])
        pages.extend([pdfread.getDestinationPageNumber(s)])

nested_is_instance_check为文件中的每个级别调用自身。你知道吗

相关问题 更多 >