ランレングス エンコーディングを使用してリストを圧縮するプログラムを作成する必要があります。私はそれを行う方法がわかりません。プログラムを少しずつ変更した後、今何をしているのかさえわかりません。
ライブラリをインポートしたり、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]
これは明らかに外れています。