【发布时间】:2017-12-18 04:22:28
【问题描述】:
我目前正在用python实现霍夫曼编码,我已经完成了,但我想让它更高效。
这是我获取原始文件内容的方法
def getDecodedFile(self, text, codes):
code = ""
origin = []
for ch in text:
code += ch
if code in codes:
origin.append(codes[code])
code = ""
bCodes = bytes(origin)
return bCodes
text是大字符串,codes是霍夫曼编码的字典(key是编码的字符串,value是0到255之间的int)
我尝试使用''.join(somelist) 而不是code += ch,但结果要慢得多。目前这个方法用len(text) = 13972363执行需要3秒,最短代码长度是6
数据示例:
text = "0100101110111"
codes = {'0': 65, '100': 66, '101': 67, '110': 68, '111': 69}
这将导致origin = [65,66,67,68,69]
如果有任何建议可以提高我的代码效率,我将不胜感激。
【问题讨论】:
标签: python string performance