Python,简单的压缩/编码算法
我有一个只包含0和1的字符串。我需要把它编码成1的范围 输入示例:Python,简单的压缩/编码算法,python,Python,我有一个只包含0和1的字符串。我需要把它编码成1的范围 输入示例: 01101110 示例输出: [[1,2], [4,6]] 更新:需要生成1序列索引的[begin,end]数组根据示例: 1的第一个序列从索引1开始,在索引2结束。 第二个序列从索引4开始,在索引6结束 序列的最小长度为1。所以“1”输入产生[[0,0]]输出 我应该怎么做?groupby有一种方法: from itertools import groupby string = '01101110' start = 0
01101110
示例输出:
[[1,2], [4,6]]
更新:需要生成1序列索引的[begin,end]数组根据示例: 1的第一个序列从索引1开始,在索引2结束。 第二个序列从索引4开始,在索引6结束
序列的最小长度为1。所以
“1”
输入产生[[0,0]]
输出
我应该怎么做?groupby有一种方法:
from itertools import groupby
string = '01101110'
start = 0
out = []
for k,g in groupby(string):
delta = len(list(g))
if k == '1':
out.append([start,start+delta-1])
start += delta
print(out)
返回:
[[1, 2], [4, 6]]
听起来您正在寻找运行长度编码,例如@das-g,但确实如此。原来的问题是updated@das-g这是射程。@IrmendeJong感谢您的帮助!但这并不是我想要的,请看更新的问题!非常感谢你