python - 从列表中将 RLE 转换为 Python 中的字符串
问题描述
我已经从另一个问题中改编了一段代码,该问题将字符串转换为 Python 中的 RLE。我正在寻找一种使用相同概念但相反的解决方案,即输入一些 RLE 并获取完整的字符串。我已经包含了我在下面使用的原始代码。
提前致谢(更新以包括贡献的代码和输出截图)
text=input("Please enter the string to encode")
encoded=[]
index=0
amount=1
while index<=(len(text)-1):
if index==(len(text)-1) or text[index]!=text[(index+1)]:
encoded.append((text[index],amount))
amount=1
else:
amount=amount+1
index=index+1
print(encoded)
from itertools import groupby
def rle(text):
return [(i, len(list(g))) for i, group in groupby(text)]
def from_rle(s):
return ''.join((i*j for i, j in s))
print(text)
[https://i.stack.imgur.com/bLevj.jpg][1]
解决方案
尝试使用 groupby
from itertools import groupby
def rle(text):
return [(i, len(list(g))) for i, group in groupby(text)]
def from_rle(s):
return ''.join((i*j for i, j in s))
推荐阅读
- linux - 如何将变量从一个 ksh 脚本传递到 Linux 中的另一个 ksh 脚本
- flutter - 有没有办法减少 Flutter 中 NavigationRail 中每个元素的高度?
- python - PuLP(线性规划)LpMaximize 如何选择最优解?
- microservices - 在 EventSourcing 中应用业务逻辑的位置
- python - 无法定义文件路径
- javascript - 在多个组件中使用变量做出反应
- typescript - React Native:基于 Array.map() 的渲染组件不会在状态更改时更新
- r - 如何在 R drake 中组合和过滤动态文件目标?
- python - 后处理和读取模糊数字 - OpenCV / tesseract
- python - Python调用日期时间当前时间?