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

标签 python

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

aabbccccaa 

会变成:

a2b1c4a2

我想到了这个:

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

但我的输出是:

a5c4b1

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

不好意思编辑不好,我在手机上

最佳答案

你可以使用 groupby为您完成工作:

>>> from itertools import groupby
>>> s = 'aabbccccaa'
>>> ''.join(k + str(sum(1 for x in g)) for k, g in groupby(s))
'a2b2c4a2'

关于python - 使用重复字符计数的字符串压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39157420/

相关文章:

python - 为什么 Python 认为 bool 值是整数?

python - Numpy:求幂运算的负执行时间

python - Celery、RabbitMQ 消息不断发送

python - 从 Flask 中的 HTTP POST 请求读取图像文件并将其转换为 PIL 图像

python - Scrapy:ImportError:没有名为项目的模块

python - Django 模型 : managing transactions when commit_manually is deprecated

python - 使用 Python REST API 在 JIRA 中创建问题和自定义字段

python - 如何使用 python-docx 正确缩进?

python - 如何在主方法中引发自定义异常?

python - 方法执行命令的延迟