您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python-如何提高这段代码的性能?

Python-如何提高这段代码的性能?

我以前也被这个绊倒了。这里的瓶颈实际上是if neighbor in closedlist

该in语句是如此易于使用,你忘记了它是线性搜索,而当你在列表上进行线性搜索时,它的添加速度很快。你可以做的是将closedlist转换为set对象。这样可以保留其项目的哈希值,因此in操作员的效率比列表高得多。但是,列表不是可散列的项目,因此你必须将配置更改为元组而不是列表。

如果的顺序对closedlist算法至关重要,则可以为in运算符使用一个集合,并为结果保留一个并行列表。

我尝试了一个简单的实现,包括aaronasterlingnamedtuple技巧,它在第一个示例中的执行时间为0.2秒,在第二个示例中的执行时间为2.1秒,但是我没有尝试验证第二个较长示例的结果。

python 2022/1/1 18:16:44 有383人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶