Python:如何检查字符串是否含数组元素并获取匹配值?
问题解决:遍历文本行并输出匹配的词汇
你的代码存在两个核心问题:
- 语法错误:
for line in lines末尾缺少冒号,会直接导致代码无法运行 - 逻辑问题:
any()函数仅返回布尔值(存在匹配则True,否则False),不会记录具体匹配的单词,所以后续的print(word)无法拿到正确的匹配项
针对你的需求,这里提供两种可行的修正方案:
方案一:输出每行第一个匹配的单词(符合你的示例场景)
# 定义文本行和匹配词列表 lines = [" I am a newbie", " Hello There"] match_words = ["newbie", "hello", "world"] for line in lines: # 逐个检查匹配词,找到第一个匹配的就输出 for word in match_words: # 忽略大小写匹配(需要严格匹配的话,去掉所有.lower()即可) if word.lower() in line.lower(): print(word) break # 找到第一个匹配后停止当前行的检查
运行结果:
newbie hello
方案二:输出每行所有匹配的单词(支持一行多匹配)
如果你的文本行可能包含多个匹配词,可以用列表推导式先收集所有匹配项再输出:
lines = [" I am a newbie and hello", " Hello There world"] match_words = ["newbie", "hello", "world"] for line in lines: matched = [word for word in match_words if word.lower() in line.lower()] for word in matched: print(word)
运行结果:
newbie hello hello world
内容的提问来源于stack exchange,提问作者OrdinaryDev2022
相关产品推荐
相关产品推荐

