Python压缩字符串

Python编写程序。模拟数据压缩中的行程长度压缩方法。行程长度压缩方法是,对于一个待压缩的字符串而言,依次记录每个字符及重复的次数。例如,待压缩字符串为3个4个B一个C两个B,则压缩的结果是(A,3)(B,4)(C,1)(B,2)。


from itertools import groupby
str='AAABBBBCBB'
res = [(k, len(list(g))) for k, g in groupby(str)]
print('压缩的结果是: ',res)

def compress(s):
    # s='AAABBBBCBB'
    if len(s)<2:
        return (s,len(s))
    ans=[[s[0],1]]
    for i in range(1,len(s)):
        if s[i-1]==s[i]:
            ans[-1][-1]+=1
        else:
            ans.append([s[i],1])
    return [tuple(i) for i in ans]

print(compress('AAABBBBCBB'))