如何提高Python运行效率 超实用的四种提速

作者:访客 2024-05-08 浏览:65
导读: Python含有许多古老的排序规则,这些规则在你创建定制的排序方法时会占用很多时间,而这些排序方法运行时也会拖延程序实际的运行速度。最佳的排序方法其实是尽可能多地使用键和内置的sort()方法。 如何提高python的运行效率 使用“if value in b”来替换第二个for循环能够提高一点效率...

Python含有许多古老的排序规则,这些规则在你创建定制的排序方法时会占用很多时间,而这些排序方法运行时也会拖延程序实际的运行速度。最佳的排序方法其实是尽可能多地使用键和内置的sort()方法。

如何提高python的运行效率

如何提高Python运行效率 超实用的四种提速

使用“if value in b”来替换第二个for循环能够提高一点效率,但是对于楼主的这个问题,优化地还很不够。对于楼主这类检查一个元素是否在某个集合之中,当数据量很大的时候,最符合需求的优化应该是“使用set类型来替换list类型”。
因为set在内部是使用哈希表来实现的,而list仅仅相当于C中的普通数组,因此查询效率对于set来说,大部分情况下能达到O(1),而list是O(n),这个当数据量很大的时候差别就极其明显了。
优化的效果十分显著,我深有体会。有次我写一个有点复杂的查询,数据量大概在几百万级别,跑完整个代码大概花了20min,然后我在网上找到了这种优化方式之后,对我的主for循环就进行了这么一点小修改,执行时间立马缩短到了2s,速度提高了600多倍!

顺便给楼主一个建议,这种写法依然是在用传统C的思维在写Python代码,用个词来形容叫不够Pythonic,也就是不够简洁,不能表现出Python的特色。很多Python专用的写法是明显提高代码效率的,比如另外一位给出的建议使用“if value in b”这个语句来替换第二个for循环。

转载请注明出处:访客,如有疑问,请联系(762063026)。
本文地址:https://office-vip.com/post/22903.html

标签: