如何通过删除python中的重复项来压缩?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何通过删除python中的重复项来压缩?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含898字,纯文字阅读大概需要2分钟。
内容图文
![如何通过删除python中的重复项来压缩?](/upload/InfoBanner/zyjiaocheng/758/df0e389565f94a51aa04f2a4943cf73c.jpg)
我有相同字符的字符串,例如’1254 ,,,,,,,,,,,,,,,, 982′.我打算做的是用’1254(,16)982’中的某些东西替换它,以便可以重建原始字符串.如果有人能指出我正确的方向,将非常感激
解决方法:
您正在寻找run-length encoding:这是一个基于this one松散的Python实现.
import itertools
def runlength_enc(s):
'''Return a run-length encoded version of the string'''
enc = ((x, sum(1 for _ in gp)) for x, gp in itertools.groupby(s))
removed_1s = [((c, n) if n > 1 else c) for c, n in enc]
joined = [["".join(g)] if n == 1 else list(g)
for n, g in itertools.groupby(removed_1s, key=len)]
return list(itertools.chain(*joined))
def runlength_decode(enc):
return "".join((c[0] * c[1] if len(c) == 2 else c) for c in enc)
对于你的例子:
print runlength_enc("1254,,,,,,,,,,,,,,,,982")
# ['1254', (',', 16), '982']
print runlength_decode(runlength_enc("1254,,,,,,,,,,,,,,,,982"))
# 1254,,,,,,,,,,,,,,,,982
(请注意,只有在字符串中运行很长时才会有效).
内容总结
以上是互联网集市为您收集整理的如何通过删除python中的重复项来压缩?全部内容,希望文章能够帮你解决如何通过删除python中的重复项来压缩?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。