首页 > 解决方案 > 计算单个字符串中 char 的出现次数

问题描述

string = input(" ")
count = string.count()
print(string + str(count))

需要使用for循环来获取输出:ll2a1m1a1

标签: python

解决方案


使用groupbyitertools

>>> from itertools import groupby
>>> s = 'llama'
>>> [[k, len(list(g))] for k, g in groupby(s)]
[['l', 2], ['a', 1], ['m', 1], ['a', 1]]

如果您想要确切的输出,请尝试以下操作,并按照@DanielMesejo 的建议,使用sum(1 for _ in g)代替len(list(g))

>>> from itertools import groupby
>>> s = 'llama'
>> groups = [[k, sum(1 for _ in g)] for k, g in groupby(s)]
>>> ''.join(f'{a * b}{b}' for a, b in groups)
'll2a1m1a1'

这适用于您想要的任何单词,假设这个词是“发生”,所以

>>> from itertools import groupby
>>> s = 'happen'
>> groups = [[k, sum(1 for _ in g)] for k, g in groupby(s)]
>>> ''.join(f'{a * b}{b}' for a, b in groups)
'h1a1pp2e1n1'

推荐阅读