在Python中解码数字?

我有解码问题。首先将字符串'44444'编码为'54'. (5 次 4) 现在当我想解码'54'它的空时。(它确实对字母起作用)

该算法将字符串解码'4a3b2c''aaaabbbcc'。现在当我想解码'4a54'它只是给出'aaaa'但正确的解码是'aaaa44444'. 我怎样才能解码这个?

这是代码:

def decode_RLE(x):
    decode = ''
    count = ''
    for i in x:
        
        if i.isdigit():
            #append to count
            count += i
        else i: 
   
            decode += i * int(count)
            count = '' 
         
    return decode

回答

您可以尝试字符串乘法:

def decode(string):
    output = ''
    for i in range(0, len(string), 2):
        output += int(string[i]) * string[i + 1]
    return output

print(decode("54"))
print(decode("4a54"))

输出:

44444
aaaa44444

你甚至可以使用列表理解:

def decode(s):
    return ''.join(int(s[i]) * s[i + 1] for i in range(0, len(s), 2))


以上是在Python中解码数字?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>