我需要编写一个使用运行长度编码来压缩列表的程序。我不知道该怎么做,并且在一次改变了我的程序之后,我甚至不知道它现在在做什么。运行长度编码函数(无库或对象方法)
我们不允许导入和使用库或使用python字符串或列表对象方法(如append()
)。
这是一个很值得现在的我:
def rle(x):
c_list = []
count = 0
for num in x:
if x[num] == x[num - 1]:
c+=[x[num], count]
count+= 1
# ...
return c
使用这个列表作为一个例子:
[8,8,8,4,5,5,5,6,6,6,6,9,8,1,1,1,1,3,3]
它会返回此:
[6, 0, 6, 1, 6, 2, 5, 3, 5, 4, 5, 5, 5, 6,
5, 7, 5, 8, 5, 9, 6, 10, 6, 11, 8, 12, 8,
13, 8, 14, 8, 15]
这显然是离开。
什么_should_它返回? –
它应该返回一个压缩列表,如:[8,3,4,1,5,3 ...] – Nick