如何完全拆分字符串,但保留字母重复两次的实例?

问题描述 投票:0回答:1

这听起来像是一个奇怪的问题,但这本质上就是我要问的。

s = 'aaabcdedddd'

在这个例子中,我想将字符串分割成这样的东西。

s = ['aa', 'a', 'b', c', 'd', 'e', 'dd', 'dd']

请注意“aaa”的三个字母重复并没有保持在一起,而是被视为双重复+单个字母(“aa”+“a”。末尾的“dddd”被视为双重复+双重复('dd' + 'dd')。

有什么办法可以有效地做到这一点吗?谢谢!

python split
1个回答
0
投票

一种可能的解决方案是使用

re
模块:

import re

s = "aaabcdedddd"

print([m.group(0) for m in re.finditer(r"(.)(?:\1)?", s)])

打印:

['aa', 'a', 'b', 'c', 'd', 'e', 'dd', 'dd']
© www.soinside.com 2019 - 2024. All rights reserved.