key_word = ["apple","Apple","Boy","boy"]
title1 = "Where the boy"
title2 = "The Boy playing cricket"
title3 = "hello world"
title4 = "I want to buy apple vinegar"
我试过了,但是没有打印:
if title1 in key_word:
print(title1)
你必须检查你的关键词是否在标题中,而不是相反。
key_words = ["apple", "boy"]
titles = [
"Where the boy",
"The Boy playing cricket",
"hello world",
"I want to buy apple vinegar"
]
for title in titles:
for key_word in key_words:
if key_word.lower() in title.lower():
print(title)
break
对于每个标题,每个关键字,检查关键字的小写版本是否在标题的小写版本中-如果是,打印标题并停止浏览关键字(这是break
所做的)。
这将从I want to buy apple vinegar
开始,然后检查apple
是否在标题中-它是,然后打印它。对于下一个条目The Boy playing cricket
,我们检查apple
是否在列表中,如果没有-所以我们继续下一个单词boy
-它在列表中。
我删除了你的重复条目,因为lower
使这些条目冗余。
我也把你的标题变成了一个列表-而不是有title1
,title2
等。这使得不必指定每个变量名就可以遍历列表,并允许您稍后轻松扩展要检查的标题集。
另一个小细节是,这只检查字母是否以相同的顺序出现;它不会检查它们是否构成一个单词(例如包含"苹果"的标题);会得到一个匹配,包含"假小子"的标题也会得到一个匹配。你可以通过先使用.split()
将标题分成单词来解决这个问题,然后检查你的关键字是否在该列表中。
另一种选择是使用正则表达式,但这是一种更高级的技术-您可以在以后有更多经验时考虑使用它。
key_word = ["apple","Apple","Boy","boy"]
title1 = "Where the boy"
title2 = "The Boy playing cricket"
title3 = "hello world"
title4 = "I want to buy apple vinegar"
for word in key_word:
if word in title1:
print(title1)
如果你想检查所有的标题,把它们放在一个列表中:
key_word = ["apple","Apple","Boy","boy"]
titles = [
"Where the boy",
"The Boy playing cricket",
"hello world",
"I want to buy apple vinegar",
]
for word in key_word:
for title in titles:
if word in title:
print(title)
看起来好像要打印包含任何关键字的任何标题。
从遍历标题开始。
:
key_word = ["apple","Apple","Boy","boy"]
title1 = "Where the boy"
title2 = "The Boy playing cricket"
title3 = "hello world"
title4 = "I want to buy apple vinegar"
for title in title1, title2, title3, title4:
if any(kw in title for kw in key_word):
print(title)
输出:
Where the boy
The Boy playing cricket
I want to buy apple vinegar