如果只匹配列表中发现的字符串,如何打印数据?


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

最新更新