如何在Python中检查单个或多个完整单词是否存在于字符串中?
解决方案
核心思路
- 将句子分割为单词集合(集合的成员查询效率远高于列表,更适合长文本场景)
- 统一处理待检查目标:兼容单个单词、空格分隔的多单词字符串、单词列表三种输入形式,全部转换为单词集合
- 通过集合的交集操作判断匹配:只要交集不为空,就说明至少有一个目标单词是句子中的完整单词
代码实现
def has_target_words(sentence, targets): # 把句子拆分为单词集合 sentence_words = set(sentence.split()) # 统一处理目标输入,兼容多种格式 if isinstance(targets, str): target_words = targets.split() else: target_words = list(targets) # 判断是否有交集,返回布尔值结果 return bool(sentence_words & set(target_words)) # 测试示例 test_sentence = "these are words" # 单个单词检查 print(has_target_words(test_sentence, "or")) # 输出: False print(has_target_words(test_sentence, "are")) # 输出: True # 多单词字符串检查 print(has_target_words(test_sentence, "these are"))# 输出: True # 单词列表检查 print(has_target_words(test_sentence, ["or", "words"])) # 输出: True print(has_target_words(test_sentence, ["or", "test"])) # 输出: False
如果需要直接打印提示信息,可使用这个版本:
def check_target_words(sentence, targets): sentence_words = set(sentence.split()) if isinstance(targets, str): target_words = targets.split() else: target_words = list(targets) if sentence_words & set(target_words): print("至少有一个目标单词存在于句子中!") else: print("没有目标单词存在于句子中!") # 测试 check_target_words(test_sentence, "these are") # 输出: 至少有一个目标单词存在于句子中! check_target_words(test_sentence, "or test") # 输出: 没有目标单词存在于句子中!
内容的提问来源于stack exchange,提问作者Marcel Burdon Księżak
相关产品推荐
相关产品推荐

