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

如何在Python中移除包含连续三个相同字母的单词?

高效过滤含连续三个相同字母的单词(Python实现)

处理数万条单词时,纯Python手动遍历检查的效率远不如用预编译正则表达式——因为Python的re模块底层是C实现的,字符串匹配效率极高,完全适配你的大列表场景。

核心方案

用正则匹配连续三个相同字符,预编译后批量过滤:

  1. 预编译正则表达式(.)\1{2}:匹配任意字符,且该字符连续出现至少3次(\1表示引用前面匹配的字符,{2}表示再重复2次,加上首次匹配就是3次)
  2. 遍历单词列表,保留不包含该匹配模式的单词

代码实现

import re

# 预编译正则,仅需执行一次,大幅提升批量匹配效率
triple_char_pattern = re.compile(r'(.)\1{2}')

# 假设你的原始单词列表为word_list
filtered_words = [word for word in word_list if not triple_char_pattern.search(word)]

为什么这比手动遍历高效?

  • 预编译正则避免了每次匹配都重新解析表达式的开销,对大列表来说节省的时间非常可观
  • re.search()是C级别的字符串扫描,比纯Python写的循环(逐个字符对比前两个)快数倍甚至数十倍
  • 列表推导式是Python中效率最高的迭代构造方式之一,比手动for循环加append更简洁高效

可选的过滤方式(性能接近)

如果习惯用filter函数,也可以这么写:

filtered_words = list(filter(lambda w: not triple_char_pattern.search(w), word_list))

内容的提问来源于stack exchange,提问作者Wayne Filkins

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:05:24