使用重复字符计数的字符串压缩

时间:2016-08-26 02:22:17

标签: python

我正在经历破解代码,并且有一个问题,他们要求编写一个字符串压缩方法,所以:

aabbccccaa 

会变成:

a2b1c4a2

我想出了这个:

''.join(y+str.count(y) for y in set(str))

但我的输出是:

a5c4b1

有人能指出我干净的方向吗?

抱歉编辑错误,我在手机上

1 个答案:

答案 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'