Мне нужно написать программу, которая использует кодирование длины пробега для сжатия списка. Я понятия не имею, как это сделать и немного изменив мою программу, я даже не знаю, что она делает сейчас.Функция кодирования длины пробега (без библиотек или методов объекта)
Нам не разрешено импортировать и библиотеки, а также использовать методы строки или списка объектов 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]
который, очевидно, далеко.
Что он должен вернуть? –
он должен вернуть сжатый список: [8,3,4,1,5,3 ...] – Nick