You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中检查单个或多个完整单词是否存在于字符串中?

解决方案

核心思路

  1. 将句子分割为单词集合(集合的成员查询效率远高于列表,更适合长文本场景)
  2. 统一处理待检查目标:兼容单个单词、空格分隔的多单词字符串、单词列表三种输入形式,全部转换为单词集合
  3. 通过集合的交集操作判断匹配:只要交集不为空,就说明至少有一个目标单词是句子中的完整单词

代码实现

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:01:01