我正在经历破解代码,并且有一个问题,他们要求编写一个字符串压缩方法,所以:
aabbccccaa
会变成:
a2b1c4a2
我想出了这个:
''.join(y+str.count(y) for y in set(str))
但我的输出是:
a5c4b1
有人能指出我干净的方向吗?
抱歉编辑错误,我在手机上
答案 0 :(得分:8)
您可以使用groupby
为您完成工作:
>>> from itertools import groupby
>>> s = 'aabbccccaa'
>>> ''.join(k + str(sum(1 for x in g)) for k, g in groupby(s))
'a2b2c4a2'