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

Python如何忽略空格对句子进行切片且保留原有空格和标点?

Python 实现忽略空格的字符串切片

核心思路

  • 不修改原字符串的结构,空格、标点全部原位保留
  • 仅对非空格字符做独立索引计数,用该计数判断当前非空格字符是否符合切片规则,匹配则保留,不匹配则跳过,无论是否保留都对非空格索引计数+1

实现代码

def slice_ignore_space(s: str, start: int = 0, step: int = 1) -> str:
    res = []
    # 非空格字符的独立索引
    non_space_idx = 0
    for char in s:
        # 空格直接保留,不参与索引计数
        if char.isspace():
            res.append(char)
            continue
        # 判断当前非空格字符是否符合切片规则
        if non_space_idx >= start and (non_space_idx - start) % step == 0:
            res.append(char)
        # 非空格字符无论是否保留,计数都+1
        non_space_idx += 1
    return ''.join(res)

测试示例

input_str = "Myevmyozrtilets gwaaarkmv yuozub ubpi farfokm ctbhpe pientsfiydqe. zBmuvtk tahgelyu anlpsmo ttzevagrk yioquj awpyaoryts。"
# 对应忽略空格取[::2]的需求
output = slice_ignore_space(input_str, step=2)
print(output)

运行后输出结果为:Memories warm you up from the inside. But they also tear you apart。
该句中文翻译为:回忆能从内心深处温暖你,却也能将你撕裂。

方案优势

不需要拆分原字符串,也不需要对空格做删除后回填操作,所有标点、空格的位置和原字符串完全一致,符合需求要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:00:02