程序员学长

V1

2022/11/02阅读:24主题:凝夜紫

提升python执行效率的若干方法

大家好,我是小寒。

一提到 python,大家的第一印象就是 python 语法简单,有丰富的库,它在机器学习和大数据中广泛使用。

同样,python 速度慢 也给大家留下了深刻印象。

不过,我们可以使用一些技巧来克服这个问题。

在本文中,我将分享一些 Python 技巧,使用这些技巧可以让我们的 Python 代码运行得比平时更快。

一、正确的算法和数据结构

选择正确的数据结构,对代码的效率提升是显而易见的。

python 中内置了 list、tuple、set、dictionary 等多种数据结构。大多数人在所有情况下都使用 list (列表) 数据结构。

在 python 中,集合和字典具有 O(1) 的查找性能,因为它们使用哈希表。在以下情况下,你可以使用集合和字典来代替列表:

  • 集合中没有重复的元素。
  • 你需要在集合中重复搜索元素。
  • 该集合包含大量元素。

二、使用内置函数和库

Python 的内置函数是加快代码速度的最佳方法之一。

你必须在需要时,使用内置的 python 函数(学习的情况除外)。

这些内置函数都经过了很好的测试和优化。

这些内置函数之所以快,是因为 python 的内置函数,如min、max、all、map等都是用C语言实现的。

案例

newlist = []

for word in wordlist:
    newlist.append(word.upper())

编写此代码的更好方法是:

newlist = map(str.upper, wordlist)

这里我们使用的是内置的 map 函数,它是用 C 编写的。因此,它比使用循环要快得多。

三、使用多个分配

如果要分配多个变量的值,请不要逐行分配它们。

Python 有一种优雅且更好的方式来分配多个变量。

案例

name = "张三"
sex = "男"
city = "北京"

分配这些变量的更好方法是:

name,sex,city = "张三","男","北京"

这种变量分配比上面的分配更加简洁和优雅。

四、使用列表推导

列表推导是一种优雅且更好的方法,只需一行代码即可根据现有列表的元素创建新列表。

列表推导被认为比定义一个空列表并向该空列表添加元素更符合 Python 风格的创建新列表的方式。

列表推导的另一个优点是它比使用 append 方法向 python 列表添加元素要快。

案例

使用列表追加方法:

newlist = []
for i in range(1, 100):
    if i % 2 == 0:
        newlist.append(i**2)

一种更好的写法:

newlist = [i**2 for i in range(1, 100) if i%2==0]

使用列表推导时,代码看起来更干净。

五、正确导入

你应该避免导入不必要的模块和库,除非你需要它们。

你可以指定模块名称而不是导入完整的库。

导入不必要的库会导致代码性能下降。

案例:

假设你需要找出一个数字的平方根。

import math
value = math.sqrt(50)

一种更好的写法。

from math import sqrt
value = sqrt(50)

六、字符串连接

在 python 中,我们经常使用 “+” 运算符来连接字符串。

其实,还有另外一种字符串连接的方法 join

Join 方法是一种更符合 python 风格的连接字符串的方法,它也比使用 '+' 运算符连接字符串更快。

join() 方法更快的原因是 “ +” 运算符创建一个新字符串,然后在每一步复制旧字符串,而 join() 方法不是这样工作的。

案例

output = "Programming" + "is" + "fun

使用 Join 方法:

output = " ".join(["Programming" , "is""fun"])

两种方法的输出将是相同的。唯一的区别是 join() 方法比 '+' 运算符快。

分类:

后端

标签:

Python

作者介绍

程序员学长
V1