python - 在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_
我希望能够输入任何压缩数据字符串并将其解压缩。它应该基于变量 code_to_uncompress 的输入工作
解决方案
您可以使用以下代码来获得您所追求的结果:
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 上添加了对用户输入的检查
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
推荐阅读
- python - 从自定义路径中提取 .ppm.bz2 到自定义路径
- javascript - 移动动画后按钮悬停不再起作用
- go - 动态类型断言 Golang
- excel - 我正在尝试使用 VBA 宏将信息从 excel 电子表格写入 Powerpoint
- r - databricks 上的 sql sparklyr sparkr 数据帧转换
- orientdb - 使用 SQL 语言创建 onBeforeCreate 动态钩子
- java - Java实例方法不同的调用方式
- java - 与补充表中的外键单向一对一映射?
- knative-serving - 如何在我自己的本地 k8s 集群上安装 knative 服务?
- spring - 单元测试 Spring ApplicationEventPublisher