【发布时间】:2021-05-12 14:38:18
【问题描述】:
我目前在 Python 3.x 中有以下代码:-
lst_exclusion_terms = ['bob','jenny', 'michael']
file_list = ['1.txt', '2.txt', '3.txt']
for f in file_list:
with open(f, "r", encoding="utf-8") as file:
content = file.read()
if any(entry in content for entry in lst_exclusion_terms):
print(content)
我的目标是查看列表 file_list 中每个文件的内容。在查看内容时,我想检查列表 lst_exclusion_terms 中的任何条目是否存在。如果是这样,我想从列表中删除该条目。
因此,如果 'bob' 在 2.txt 的内容中,它将被从列表中删除(弹出)。
我不确定如何用命令替换我的print(content),以识别正在检查的项目的当前索引号,然后将其删除。
有什么建议吗?谢谢
【问题讨论】:
-
我有一个傻笑,你标记了你的问题
[enumerate]。enumerate()function 是您所需要的。请记住,您不想在迭代列表时从列表中删除项目(发生错误)。 stackoverflow.com/questions/1207406/… -
感谢@PranavHosangadi。我用谷歌搜索了一下,发现 enumerate 并认为它是相关的,但无法计算出代码。根据您提到的有关错误发生的评论,您建议的方法是什么?将索引号添加到临时列表中,然后通过此操作进行删除?
-
“您建议的方法是?”请参阅我之前评论中另一个 SO 问题的链接。
-
enumerate()有什么问题吗?它的工作原理是这样的:for index, value in enumerate(my_collection)。不出所料,index为您提供当前迭代中正在考虑的my_collection元素的索引,value为您提供它的值。
标签: python python-3.x list enumerate