微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Python - 在字符串的单词列表中搜索单词的匹配项

我有一个这样的字符串:

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

以及要搜索的单词列表:

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

如何将“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)
,

在 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","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","HTML"] 

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

for x in matches: print(x) # PYTHON
,

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

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

print(results)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。