[导读]:Python LZW 算法 LZW 压缩算法 string = "thisisthe"dictionary = {chr(i):i for i in range(97,123)} last = 256p = ""result = [] for c in string:pc = p+cif pc in dictionary:p = pcelse:result.append(dictionary[p])dictionary[pc] =...
Python LZW 算法
LZW 压缩算法
string = "thisisthe" dictionary = {chr(i):i for i in range(97,123)} last = 256 p = "" result = [] for c in string: pc = p+c if pc in dictionary: p = pc else: result.append(dictionary[p]) dictionary[pc] = last last += 1 p = c if p != '': result.append(dictionary[p]) print(result)
以上代码运行结果为:
[116, 104, 105, 115, 258, 256, 101]
LZW 解压缩算法
dictionary = {i:chr(i) for i in range(97,123)} last = 256 arr = [97, 97, 98, 256, 258, 257, 259] result = [] p = arr.pop(0) result.append(dictionary[p]) for c in arr: if c in dictionary: entry = dictionary[c] result.append(entry) dictionary[last] = dictionary[p] + entry[0] last += 1 p = c print(''.join(result))
以上代码运行结果为:
aabaabaabaab
本文来自投稿,不代表微盟圈立场,如若转载,请注明出处:https://www.vm7.com/a/ziyuan/111650.html