Python -在字符串中的单词列表中搜索匹配的单词



我有一个这样的字符串:

text = "The best language in the word is $python at now"

和要搜索的单词列表:

keywords = ["PYTHON","PHP","JAVA","COBOL","CPP","VB","HTML"]

如何拥有"PYTHON"结果吗?

在python中,您可以使用in操作符轻松检查字符串是否包含另一个字符串。

只需检查每个关键字的字符串,并记住使大小写相同。

可以用一行

[print(x) for x in keywords if x in text.upper()]

或多个

for x in keywords:
if x in text.upper():
print(x)

在您的情况下,以下示例将输出PYTHON:

text     = "The best language in the word is $python at now"
keywords = ["PYTHON","PHP","JAVA","COBOL","CPP","VB","HTML"] 
[print(x) for x in keywords if x in text.upper()] #PYTHON

祝你过得愉快。

编辑

正如Malo所指出的,将输出传递给一个变量,然后将其打印出来可能是更好的样式。

text     = "The best language in the word is $python at now"
keywords = ["PYTHON","PHP","JAVA","COBOL","CPP","VB","HTML"] 
matches  = [x for x in keywords if x in text.upper()]
for x in matches: print(x) # PYTHON

此代码适用于我,但您必须在python之前去掉$:

text = "The best language in the word is python at now"
keywords = ["PYTHON","PHP","JAVA","COBOL","CPP","VB","HTML"]
upper_text = text.upper()
ar_text = upper_text.split()
for word in keywords:
if word in ar_text:
print(word)

这将使用find来检查字符串中是否有列表项(不区分大小写,因为这就是您要问的):

results = []
for keyword in keywords:
if text.lower().find(keyword.lower()) != -1:
results.append(keyword)
print(results)

最新更新