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

Python代码未统计最后一段连续字符序列的原因及优化方案

问题修复:遗漏最后一段序列计数

你的代码问题在于循环结束后,最后一段连续字符的计数没有被添加到结果列表中。循环仅在遇到不同字符时才会将之前的计数存入列表,而最后一段字符没有后续字符触发这个操作。

修正后的代码

a = "assdddfghttyuuujssa"
b = ''
c = 1
d = []
for item in a:
    if item == b:
        c += 1
    elif b == '':
        c = 1
    else:
        d.append(c)
        c = 1
    b = item
d.append(c)  # 添加这行,把最后一段的计数加入结果
print(''.join(map(str, d)))  # 将数字列表转为目标字符串格式

标准库替代方案(使用itertools.groupby)

Python的itertools.groupby可以直接对连续相同字符分组,是处理这类问题的最优解:

from itertools import groupby

s = "aabcccjaaa"
# 对每个连续字符组,计算长度并转为字符串后拼接
result = ''.join(str(len(list(group))) for _, group in groupby(s))
print(result)  # 输出:21313

groupby会把字符串中连续相同的字符聚合成一个迭代器,我们通过len(list(group))获取每组的长度,再将所有长度转为字符串拼接即可得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:30:54