Python中文
首页
教程
问答
标签
搜索
登录
注册
在字典performan中迭代一个大字符串并检查子字符串的成员身份
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我目前正在用python实现Huffman编码,我已经完成了它,但是我想让它更高效</p> <p>这是我用来获取原始文件内容的方法</p> <pre><code>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 </code></pre> <p><code>text</code>是大字符串,<code>codes</code>是哈夫曼代码字典(Key是代码字符串,value是0到255之间的整数)</p> <p>我试着用<code>''.join(somelist)</code>代替<code>code += ch</code>,但是结果慢了很多。目前这个方法用<code>len(text) = 13972363</code>执行需要3秒钟,最短的代码长度是<code>6</code></p> <p>数据示例:</p> <p><code>text = "0100101110111"</code></p> <p><code>codes = {'0': 65, '100': 66, '101': 67, '110': 68, '111': 69}</code></p> <p>那会导致<code>origin = [65,66,67,68,69]</code></p> <p>我将感谢任何建议,使我的代码有效</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>最大的性能提升来自于使用trie之类的工具来存储Huffman树。这将允许您一次降低一个级别,这将消除字符串串联或重复检查是否存在的需要</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在用户使用jquery单击按钮(提交选项之前)时突出显示html中的选项
5 回答
如何在用户使用midd注销时删除用户
1 回答
如何在用户停止滑动和缩放时同步范围?
1 回答
如何在用户关闭Android kivy应用程序后恢复上一个活动?
8 回答
如何在用户关闭浏览器后不强制登录
6 回答
如何在用户函数中返回两个数据帧
9 回答
如何在用户创建后更新用户列表字段;信号
8 回答
如何在用户单击Django中的“ok”后触发Javascript警报并重定向页面?
3 回答
如何在用户单击查询后显示消息؟
7 回答
如何在用户可以使用键盘的健身房制作cartpole游戏
3 回答
如何在用户名和密码来自数据库的python脚本中添加最大登录尝试?
8 回答
如何在用户名和密码相同的情况下登录网站?
5 回答
如何在用户向Django注册时添加新的数据库条目?
9 回答
如何在用户和他们进行的不同交易之间建立关系?
5 回答
如何在用户和会话之间创建一对多的关系,其中用户在一方,会话在多方?
1 回答
如何在用户喜欢帖子时动态更新Flask模板?
8 回答
如何在用户在Django中注册后自动将users表链接到另一个表
2 回答
如何在用户定义的Python函数中打印给定参数的长度?
5 回答
如何在用户定义的Python类中实现哈希?
5 回答
如何在用户定义的块中迭代Numpy数组?
4 回答