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'))