如何将由小写英文字母字母组成的字符串拆分为由相同字母组成的子字符串-因此对于输入:
"aaaabbcccdd"
该功能应输出一个列表:
["aaaa", "bb", "ccc", "dd"]
答案 0 :(得分:3)
使用itertools.groupby
和str.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"]