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

Python多分隔符分割字符串:简化实现及尾随空格处理需求

简洁实现方案

方法1:使用正则表达式 re.split

正则表达式可以直接匹配所有指定分隔符,一次性完成分割,同时自动处理连续分隔符的问题:

import re

delimiters = r"[\s,;.?!-:@\[\](){}_*/]"
def get_words(sentence):
    # 按分隔符分割,过滤空字符串
    words = re.split(delimiters, sentence)
    # 过滤停用词和空内容,统一转小写
    return [word.lower() for word in words if word and word.lower() not in stopWordsList]

方法2:使用 str.maketrans + str.translate

先把所有分隔符替换为空格,再利用默认split()自动处理首尾空格、连续空格的特性:

delimiters = " \t,;.?!-:@[](){}_*/"
# 创建转换表:将每个分隔符映射为空格
trans_table = str.maketrans(delimiters, ' ' * len(delimiters))

def get_words(sentence):
    # 替换分隔符为空格后分割,自动忽略无效空白
    words = sentence.translate(trans_table).split()
    # 过滤停用词并转小写
    return [word.lower() for word in words if word.lower() not in stopWordsList]

优化点说明

  • 原代码把delimiters转列表完全多余,字符串本身可直接用于in判断。
  • 循环拼接字符串效率极低(Python字符串不可变,每次拼接都会生成新对象),改用translate或正则更高效。
  • 不带参数的split()会自动按任意空白字符分割,同时忽略首尾空格和连续空格,完美解决尾随空格问题。
  • 列表推导式替代多层循环过滤,代码更紧凑简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:02:33