如何检测两个或多个字符串中存在至少2个相同单词并执行操作?
检测多字符串中重复单词并执行操作的实现方法
核心思路
要实现「当两个或多个字符串存在至少2个相同单词时执行操作」,需先拆分字符串为单词集合,再计算共同单词的数量,最后判断是否满足条件。
针对两个字符串的实现代码
string_one = "hello world one" string_two = "hello john one" # 将字符串拆分为单词集合(自动去重单个字符串内的重复单词) words_set1 = set(string_one.split()) words_set2 = set(string_two.split()) # 获取两个集合的交集(共同单词) common_words = words_set1 & words_set2 # 判断共同单词数量是否≥2 if len(common_words) >= 2: # 这里写入你要执行的操作 print("执行指定操作")
代码说明
split():默认按任意空白符(空格、制表符等)拆分字符串,自动处理多个连续空格的情况- 使用集合(
set):避免单个字符串内的重复单词干扰判断(比如字符串含重复单词时不会重复计数) - 集合交集操作(
&):高效获取两个字符串的共同单词,再通过len()判断数量是否达标
扩展:处理三个及以上字符串
如果需要同时检测多个字符串,可通过循环逐步缩小共同单词集合:
# 待检测的字符串列表 target_strings = [ "hello world one", "hello john one", "hello alice one" ] # 初始化共同单词集合为第一个字符串的单词集合 common_words = set(target_strings[0].split()) # 遍历剩余字符串,逐步求交集 for s in target_strings[1:]: common_words &= set(s.split()) # 提前终止:如果交集不足2个,无需继续遍历 if len(common_words) < 2: break # 判断并执行操作 if len(common_words) >= 2: print("执行指定操作")
内容的提问来源于stack exchange,提问作者Koneko Sama
相关产品推荐
相关产品推荐

