繁体   English   中英

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

[英]Way to force index for item in list?

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

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

初始列表如下所示:

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

搜索完文件并将它们附加到此列表之后,我遍历该列表并删除所有“占位符”项。 这些文件然后合并。

我想知道是否有Python函数可以某种方式自动执行“占位符”步骤? 就像将插入searchTerm并将其附加到其索引的空白列表并保留在其中的函数一样。 例如,如果首先找到一个“引用”文件,它将被附加到索引2,并且无论是否找到其他文件,都将保留在那里。

列出清单:

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

然后,您可以append到正确的列表。

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

这实际上并不是您可能想要的解决方案,但是包含占位符可能不是什么大问题。

一种更干净的方法是:

# 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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM