用python解压压缩数据的代码?

2024-10-03 06:29:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一些帮助来找到代码,将解压压缩数据字符串。例如,如果我进入 '4a2b'程序将输出'aaaabb'

from itertools import groupby
s = code_to_uncompress=input('Please enter the code?')
#s = '4a2b'
ss = [''.join(list(g)) for k, g in groupby(s, key=lambda x: x.isdigit())]
s_ = []
for i in range(len(ss)):
    if i%2 != 0:
        s_ += int(ss[i-1])*ss[i]
s_ = ''.join(s_)
s_

我希望能够输入任何压缩数据字符串并将其解压缩。它应该基于变量代码的输入来工作


Tags: to数据字符串代码infromimport程序
2条回答

您可以使用以下代码获得所需的结果:

import re
test_str = "4a2b"

def multiply_char(c, num):
    return c *num


def uncompress_str(s):
    digits_str = [s for s in re.findall("\d", s)]
    for dig in digits_str:
        indx = s.find(dig)
        sub_str_replace = multiply_char(s[indx+1], int(dig))
        pat = s[indx:indx+2]
        s = s.replace(pat, sub_str_replace,1)
    return s

test_str = "4a2b"的输出是:

print(uncompress_str(test_str))
aaaabb

用户输入字符串的输出为:

test_str = input("Enter String: ")
print(uncompress_str(test_str))
Enter String: 5d4c7i8q
dddddcccciiiiiiiqqqqqqqq

我喜欢总是分离到函数,但是你可以不用函数,作为循环的一部分

增加了对windows和ubuntu用户输入的检查

乌班图:

davidsr@complex1:/data2/davidsr$ python3 test.py 
Enter String: 4a3b5g6y
aaaabbbgggggyyyyyy

视窗:

C:\Users\davidsr\PycharmProjects\test_matan>py test.py
Enter String: 4a3b
aaaabbb

期待更好的解决方案,以下是我的代码:

from itertools import groupby
s = '4a2b'
ss = [''.join(list(g)) for k, g in groupby(s, key=lambda x: x.isdigit())]
s_ = []
for i in range(len(ss)):
    if i%2 != 0:
        s_ += int(ss[i-1])*ss[i]
s_ = ''.join(s_)
s_

输出:

'aaaabb'

相关问题 更多 >