-2

lempel-ziv デコード メソッドで indexError を取得します。これは私のコードです。サイズが 3 になることはわかっていますが、len(LT) はちょうど 2 です。しかし、擬似コードを python コードに変換しただけです。

 def decode(self,target):
        tlen = len(target)
        source = ''
        source += target[0]
        LT = ['',target[0]]
        loc = 1
        size = 2
        while loc < tlen:
            bitlen = ceil(log2(size))
            index = self.BIT_TO_INTEGER(target[loc:(loc+bitlen)])

            seg = LT[index]

            if loc+bitlen < tlen:
                seg += target[loc+bitlen]
                size += 1
                #print(size)

                #print(LT,size)
                LT[size] = seg
                loc += 1
            source += seg
            loc += bitlen
        return source

これはエラーメッセージです:

LT[size] = seg
IndexError: list assignment index out of range
4

1 に答える 1

1

リストに 3 番目の項目を追加する場合はappend、代入の代わりに使用します。

交換

LT[size] = seg

LT.append(seg)
于 2015-09-21T12:46:14.033 に答える