5种神奇的方法,让你的Python代码加速起飞

开发 后端
我们都知道就速度而言,Python是比Java或C慢得多的语言。Python是动态类型化的语言,这意味着它的变量类型未预定义。动态类型是一把双刃剑,它成就了Python成为一种优雅的语言,同时也让Python运行速度减慢。让我们看看一些可能对您的整体代码性能产生重大影响的小技巧。

前言

我们都知道就速度而言,Python是比Java或C慢得多的语言。Python是动态类型化的语言,这意味着它的变量类型未预定义。动态类型是一把双刃剑,它成就了Python成为一种优雅的语言,同时也让Python运行速度减慢。让我们看看一些可能对您的整体代码性能产生重大影响的小技巧。

[[373206]]

1. 了解你的内置函数

这一技巧有助于节省您的时间和时间与您的代码。当我开始学习Python的时候,我以前从不使用内置函数,所以为了完成我的绝对值代码,我会运行一个for循环而不是使用abs()。为了把一个字符转换成大写字母,我甚至会把它转换成与大写字母等价的ASCII字符,因为我拒绝学习字符串函数。

如果你对Python是认真的,那么学习所有的Python内置函数是值得的,因为它不仅使你的代码更整洁、更可重用,你还可以通过简单地使用Python提供给你的东西来避免代码中人为的低效率。

2. A,B=B,A

我确信您以前使用过“temp”作为占位符变量来交换两个元素。我能告诉你的是,这个方法只在课堂上使用,不应该在编程时使用。

相反,可以通过将变量写成a,b = b,a 来进行简单的变量交换。这将在一行中切换所有变量,并防止解释器超过三个(temp, a,b交换方法)。

这是一个小小的修复,可以节省几分之一秒的时间——但从长远来看,这些时间会累积起来。

3. 只在函数内导入

作为一个初学者,我们都喜欢大量导入我们认为在代码顶部需要的所有东西。我记得有一次我导入了NumPy, Pandas, Scipy, Warnings, Math, Math, Os等等,当我完成我的代码时,我只使用了三个库。这会耗尽你电脑的内存。

相反,在相应的函数中导入所需的库(如果多个函数需要相同的库,则需要多次导入)。这意味着解释器只会在你调用函数时完成导入,而不是在代码的开头。现在Python库被缓存了,所以当你调用不同的函数时,它不会在每次导入时占用额外的时间。然而,当您最终导入顶部的所有内容,甚至不使用代码中的一些函数时,它确实会占用更多的时间。

4. 使用Numba

这是一个小众技巧,主要帮助使用NumPy或科学编程的人。Numba是一个Python JIT编译器,它对函数应用装饰器,将一些函数转换为超快的字节代码(几乎与C一样快)。Numba开始因其简单和庞大的功能而出名。

Numba目前也支持其他功能,但是,我认为它目前主要是为科学Python开发人员提供的。

5. 从集合中检查,而不是从列表中

这是Python优化书中最古老的技巧之一。如果存在元素,不要在列表中搜索。相反,将列表设置为set(set(list)),然后执行检查“element in set(list)”。这个小小的改变将提高您的运行时效率,因为Python使用了可调整大小的哈希表,将平均时间复杂度提高到了O(1)。

 

然而,遍历集合并不比遍历列表快。

 

责任编辑:华轩 来源: Python学会
相关推荐

2023-09-05 07:00:42

2013-03-25 09:41:20

PythonCython

2021-04-15 15:20:46

PythonProperty装饰器

2020-07-23 14:15:42

Cython的Python代码

2021-02-22 11:12:24

ExcelPython数据

2020-05-21 08:53:12

Python技术代码

2023-10-20 07:29:16

框架模型Prompt

2020-04-26 10:32:58

Kubernetes集群Pod

2020-09-02 14:00:05

Python代码脚本

2023-11-10 08:18:27

JavaGraalVM

2020-05-21 15:14:15

Python列表字典

2011-01-13 14:38:00

JavascriptCSSWeb

2009-04-07 10:52:00

职场工作方法

2023-12-28 10:01:05

ChatGPT技巧信息

2022-05-10 10:28:21

JavaScript代码

2011-04-22 10:45:52

文件夹Windows

2021-02-01 10:26:11

数字业务IT领导者首席信息官

2023-05-16 06:50:50

prompt邮件语法

2020-04-03 14:55:39

Python 代码编程

2018-03-26 14:20:23

PythonMatplotlib数据可视化
点赞
收藏

51CTO技术栈公众号