Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,简单的压缩/编码算法_Python - Fatal编程技术网

Python,简单的压缩/编码算法

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

我有一个只包含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
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感谢您的帮助!但这并不是我想要的,请看更新的问题!非常感谢你