gpt4 book ai didi

python - 用数字对字符串中的重复字母进行编码

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:16 26 4
gpt4 key购买 nike

字符串 'abc' 必须变成 'a1b1c1'。字符串 'aaabcca' - 'a3b1c2a1'

我写了 python 函数,但它无法添加最后一个字母,'abc' 只是 'a1b1'。

string = "aaabbcc"
coded = ''
if len(string) == 0:
print('')
else:
count = 1 #start with the first char, not zero!
prev = string[0]
for i in range(1,len(string)):
current = string[i]
if current == prev:
count +=1
else:
coded += prev
coded += str(count)
count = 1
prev = current
print("coded string: " + coded)
print(coded)

最佳答案

使用itertools.groupby .

>>> from itertools import groupby
>>> s = 'aaabcca'
>>> ''.join('{}{}'.format(c, sum(1 for _ in g)) for c, g in groupby(s))
'a3b1c2a1'

有关 groupby 产生的内容的详细信息:

>>> groups = groupby(s)
>>> [(char, list(group)) for char, group in groups]
[('a', ['a', 'a', 'a']), ('b', ['b']), ('c', ['c', 'c']), ('a', ['a'])]

关于python - 用数字对字符串中的重复字母进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53401193/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com