python将文本简单压缩为文本



输入字符串="wwwwwwwwkkktttttrrrrwww"期望输出="0";9w3k5t4r3w";

我只是想知道是否有更有效/更好的方法来实现这一点?

def my_encode(str1):
temp = str1[0]
cnt = 0
final = ''
for letter in str1:
if letter == temp:
cnt += 1
else:
final = final + str(cnt) + temp
cnt = 1
temp = letter
final = final + str(cnt) + temp
return final

print(my_encode('wwwwwwwwwkkktttttrrrrwww'))

也许itertools.groupby适用于

key = 'wwwwwwwwwkkktttttrrrrwww'
from itertools import groupby
print(''.join('{}{}'.format(len(list(k)), g) for g, k in groupby(key)))
>>> 9w3k5t4r3w

最新更新