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

Python字符串重组时错误添加空格的问题排查求助

问题分析与修正

你的核心问题是索引基准不匹配:你记录的是原字符串中单词末尾的索引(包含空格的位置计数),但重组字符串时用的是无空格字符数组的索引(不包含空格的计数),两者数值完全对应不上,导致空格被错误添加。

修正思路

在收集无空格字符的过程中,直接记录每个单词在无空格数组中的末尾索引,而非原字符串的索引。这样重组时,判断逻辑的基准就统一了。

修正后的代码

# 原字符串
string = "The quick brown fox jumps over the extraordinarily lazy dog"

output_string = ""
# 存储无空格的字符数组
text = []
# 存储无空格数组中每个单词的末尾索引
end = []
space = ' '

# 遍历原字符串,同时构建字符数组和单词末尾索引
for char in string:
    if char == space:
        # 遇到空格时,当前text的最后一个索引就是上一个单词的末尾
        if text:  # 避免开头就是空格的情况
            end.append(len(text) - 1)
    else:
        text.append(char)

# 重组字符串
x = 0
while x < len(text):
    output_string += text[x]
    # 如果当前是单词末尾,添加空格
    if x in end:
        output_string += " "
    x += 1

print(output_string)

关键修改点

  1. 移除无用的import enum,精简代码
  2. 遍历原字符串时不再依赖enumerate(无需原索引),将循环变量改为char,避免覆盖原字符串变量
  3. 遇到空格时,计算无空格数组text的最后一个索引(len(text)-1)存入end,确保索引基准与重组时一致
  4. 重组逻辑保留,但此时end中的索引完全匹配text的位置,空格会被正确添加在单词末尾之后

测试结果

修正后输出与原字符串完全一致:

The quick brown fox jumps over the extraordinarily lazy dog

内容的提问来源于stack exchange,提问作者Damon O'Neil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:18:08