如何将字符串拆分为相同字母的子字符串?

时间:2018-07-31 09:49:22

标签: python string

如何将由小写英文字母字母组成的字符串拆分为由相同字母组成的子字符串-因此对于输入

"aaaabbcccdd"

该功能应输出一个列表:

["aaaa", "bb", "ccc", "dd"]

3 个答案:

答案 0 :(得分:3)

使用itertools.groupbystr.join进行以下列表理解将起作用:

from itertools import groupby

s = "aaaabbcccdd"
[''.join(g) for _, g in groupby(s)]
# ["aaaa", "bb", "ccc", "dd"]

答案 1 :(得分:0)

您可以将正则表达式与反向引用一起使用:

import re
from operator import itemgetter
print(list(map(itemgetter(0), re.findall(r'((.)\2*)', "aaaabbcccdd"))))

这将输出:

['aaaa', 'bb', 'ccc', 'dd']

答案 2 :(得分:0)

反击解决方案-

from collections import Counter

[i*j for i, j in Counter("aaaabbcccdd").iteritems()]
# OP ["aaaa", "bb", "ccc", "dd"]