如何强制索引列表中的项?

2024-04-24 00:39:37 发布

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

我设置了一个脚本,在这个脚本中,我在给定的目录中搜索包含“cover”、“resume”和“references”的pdf文件,将它们插入一个列表,然后合并它们。搜索项如下所示,其中键是搜索项,值是应插入列表的索引:

searchTerms = {"cover": 0,
    "resume":1,
    "references":2}

初始列表如下所示:

pdfsToBeMerged = ["placeholder", "placeholder", "placeholder"]

在我搜索了这些文件并将它们附加到这个列表之后,我在列表中循环并删除所有“占位符”项。然后合并这些文件。你知道吗

我想知道的是,是否有一个Python函数可以自动执行这个“占位符”步骤?就像一个函数,它将插入一个searchTerm,并将它附加到索引处的一个空列表中,然后将它保持在那里。例如,如果先找到一个“references”文件,它将被附加到索引2中,并将留在那里,而不管它是否找到其他文件?你知道吗


Tags: 文件函数目录脚本列表pdf步骤cover
2条回答

这并不是您真正想要的解决方案,但是包含占位符并不是什么大问题。你知道吗

一个更干净的方法是:

# Initialize with None instead of "placeholder"
pdfs_to_be_merged = [None] * 3

# Insertion as usual
pdfs_to_be_merged[index] = pdf

# Get the cleaned list
[pdf for pdf in pdfs_to_be_merged if pdf is not None]

列出清单:

pdfsToBeMerged = [[], [], []]

然后您可以append到正确的列表。你知道吗

for term in searchTerms.keys()
    if term in filetext:
        pdfsToBeMerged[searchTerms[term]].append(filename)

相关问题 更多 >