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

Python中如何按连续相同字母分割字符串?示例说明

在Python中按连续相同字符分割字符串的方法

当然有啦!在Python里实现你要的这种连续相同字符分割需求,有两种常用思路,我给你详细说说:

方法一:用itertools.groupby(简洁高效)

这是最顺手的方案,Python标准库的itertools.groupby专门用来处理这类连续相同元素的分组问题。它会把字符串中连续的相同字符归为一组,我们只需要把每个组的字符拼接成字符串就行:

from itertools import groupby

input_str = "BWWWBWWBW"
split_result = [''.join(group) for key, group in groupby(input_str)]
print(split_result)  # 输出: ['B', 'WWW', 'B', 'WW', 'B', 'W']

简单解释下:groupby(input_str)会返回一个个元组,第一个元素是当前组的字符(比如'B'、'W'),第二个元素是对应字符的迭代器,用''.join(group)就能把迭代器里的字符拼成完整的连续字符串,最后把所有结果收集到列表里就搞定了。

方法二:手动遍历实现(适合理解逻辑)

要是你不想依赖标准库,想自己搞懂底层逻辑,手动写遍历代码也很简单。核心思路就是跟踪当前的字符组,遍历字符串时不断更新:

input_str = "BWWWBWWBW"
split_result = []

if not input_str:
    print(split_result)
else:
    current_char = input_str[0]
    current_group = current_char
    # 从第二个字符开始遍历
    for char in input_str[1:]:
        if char == current_char:
            current_group += char
        else:
            split_result.append(current_group)
            current_char = char
            current_group = char
    # 别忘了把最后一组加入结果
    split_result.append(current_group)

print(split_result)  # 输出: ['B', 'WWW', 'B', 'WW', 'B', 'W']

这个逻辑很直观:先处理空字符串的边界情况,然后初始化当前字符和对应的组,遇到相同字符就追加到当前组,遇到不同的就把当前组存入结果列表,更新当前字符和组,最后一定要把循环结束后剩下的最后一组也加进去哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:49:30