大一小白python求解

问题遇到的现象和发生背景
          编写程序。模拟数据压缩中的行程长度压缩方法。行程长度压缩方法是,对于一个待压缩的字符串而言,
      依次记录每个字符及重复的次数。例如,待压缩字符串为AAABBBBCBB,则压缩的结果是(A,3)(B,4)(C,1)(B,2)
问题相关代码,请勿粘贴截图
运行结果及报错内容

目前还刚入门 我只会写不间断压缩统计时的情况,对于题目要求的间断压缩还存在困难 不会写,请大家们指点
(这是我会写的那种情况)

=s.upper()
 c=[]
 d=[]
 a=list(s)
 for i in set(a):
    c.append(i)
 c.sort()
 for j in c:
     d.append('({},{})'.format(j, a.count(j)))
 for i in d:
     print(i,end='')


我的解答思路和尝试过的方法
我想要达到的结果

s = "AAABBBBCCBB"
a = ""
b = []
while True:
    c = s[0]
    for i in range(1,len(s)):
        if s[i] == s[0]:
            c+=s[0]
        if s[i] != s[0]:
            break
    d = c.count(s[0])
    b.append((s[0],d))
    if d == len(s):
        break
    s = s[d:]
print(b)

def translate(s):
    res = []
    t,n = s[0],1
    for i in s[1:]:
        if i==t:
            n+=1
        else:
            res.append((t,n))
            t,n = i,1
    res.append((t,n))
    return res

s = "AAABBBBCBB"
print(translate(s))

如有帮助,请采纳!

用字典

str=input()
str=str.upper()
resoult={}
for i in str:
    resoult[i]=str.count(i)
 
op = []
for i in resoult.items():
    op.append(i)
    
print(op)

img