如果仅在列表中找到匹配的字符串,如何打印数据?
How to print data if only matching string found in list?
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_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_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
等。这样就可以浏览列表而不必指定每个变量名称,让您可以轻松扩展以后要检查的标题集。
另一个小细节是,这只检查字母是否以相同的顺序出现;它不检查它们是否构成一个词(因此包含“apples”的标题会匹配,包含“tomboy”的标题也会匹配)。您可以通过先使用 .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 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
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_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_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
等。这样就可以浏览列表而不必指定每个变量名称,让您可以轻松扩展以后要检查的标题集。
另一个小细节是,这只检查字母是否以相同的顺序出现;它不检查它们是否构成一个词(因此包含“apples”的标题会匹配,包含“tomboy”的标题也会匹配)。您可以通过先使用 .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 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