lis = ["非关键词", " 关键词1 ", "/s关键词2/s", "重复的关键词1"]
keywords = ["关键词1", "关键词2", "关键词3"]
result = {}
for i in keywords:
find = False
for j, k in enumerate(lis):
if not find:
if i in k:
result[i] = j
find = True
if not find:
result[i] = "not found"
result
你的代码已经很好了,但如果你想使用正则表达式来改写,你可以考虑以下的代码。这个代码使用了Python的re
模块,它提供了正则表达式匹配操作类似于Perl的。在这个代码中,我使用了re.search()
函数来查找关键词。
import re
lis = ["非关键词", " 关键词1 ", "/s关键词2/s", "重复的关键词1"]
keywords = ["关键词1", "关键词2", "关键词3"]
result = {}
for keyword in keywords:
result[keyword] = next((i for i, item in enumerate(lis) if re.search(keyword, item)), "not found")
result
这个代码会返回一个字典,其中每个关键词是键,值是关键词在列表lis
中第一次出现的位置。如果关键词在列表中没有找到,那么值就是"not found"。希望这个代码对你有所帮助!