gpt4 book ai didi

python - 如何用python分割这个字符串?

转载 作者:太空狗 更新时间:2023-10-29 20:34:12 25 4
gpt4 key购买 nike

我有看起来像这个例子的字符串:“AAABBBCDEEEEEBBBAA”

字符串中可以是任何字符。

我想将其拆分为如下列表:['AAA','BBB','C','D','EEEE','BBB','AA']

因此相同字符的每个连续延伸都会进入拆分列表的单独元素。

我知道我可以遍历字符串中的字符,检查每个 i 和 i-1 对是否包含相同的字符,等等。但是有没有更简单的解决方案?

最佳答案

我们可以使用正则表达式:

>>> import re
>>> r = re.compile(r'(.)\1*')
>>> [m.group() for m in r.finditer('AAABBBCDEEEEBBBAA')]
['AAA', 'BBB', 'C', 'D', 'EEEE', 'BBB', 'AA']

或者,我们可以使用 itertools.groupby .

>>> import itertools
>>> [''.join(g) for k, g in itertools.groupby('AAABBBCDEEEEBBBAA')]
['AAA', 'BBB', 'C', 'D', 'EEEE', 'BBB', 'AA']

timeit 显示 Regex 更快(对于这个特定的字符串)(Python 2.6Python 3.1)。不过Regex毕竟是专门针对string的,groupby是泛型函数,所以这也不是什么意外。

关于python - 如何用python分割这个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3940721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com