Skip to content

Latest commit

 

History

History
183 lines (106 loc) · 6.41 KB

make-python-code-run-incredibly-fast.md

File metadata and controls

183 lines (106 loc) · 6.41 KB

如何让 Python 代码运行得极快

原文:www.kdnuggets.com/2021/06/make-python-code-run-incredibly-fast.html

如何让 Python 代码运行得极快

由 brgfx 制作的图片 在 Freepik 上

Python 是开发者中最受欢迎的编程语言之一。无论是网页开发还是机器学习,它都无处不在。


我们的前三个课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业。

2. Google 数据分析专业证书 - 提升你的数据分析能力

3. Google IT 支持专业证书 - 支持你组织的 IT


其流行有很多原因,例如社区支持、惊人的库、在机器学习和大数据中的广泛使用以及简易的语法。

尽管有这些优点,Python 仍然有一个缺点,就是其 速度较慢。作为一种解释型语言,Python 比其他编程语言要慢。不过,我们可以通过一些技巧来克服这个问题。

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

1. 合适的算法和数据结构

每种数据结构对运行时间都有显著影响。Python 中有许多内置数据结构,如列表、元组、集合和字典。大多数人使用列表数据结构来处理所有情况。

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

  • 你在集合中没有重复项。

  • 你需要在集合中重复搜索项目。

  • 该集合包含大量项目。

你可以在这里查看不同数据结构的时间复杂度:

通过 Python Wiki 了解时间复杂度

本页面记录了当前 CPython 中各种操作的时间复杂度(又称“Big O”或“Big Oh”)...

2. 使用内置函数和库

Python 的内置函数是加速代码的最佳方法之一。你必须在需要时使用内置 Python 函数。这些内置函数经过良好测试和优化。

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

你应该使用这些内置函数,而不是编写手动函数,这将帮助你更快地执行代码。

示例:

newlist = []

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

更好的代码写法是:

newlist = map(str.upper, wordlist)

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

3. 使用多重赋值

如果你想赋值多个变量,那么不要逐行赋值。Python 有一种优雅且更好的方式来赋值多个变量。

示例:

firstName = "John"
lastName = "Henry"
city = "Manchester"

更好的变量赋值方式是:

firstName, lastName, city = "John", "Henry", "Manchester"

这种变量赋值方式比上述方法更简洁优雅。

4. 优先使用列表推导而非循环

列表推导是一种优雅且更好的方式,可以基于现有列表的元素在一行代码中创建新列表。

列表推导被认为是一种比定义空列表并向其添加元素更具 Python 风格的创建新列表的方式。

列表推导的另一个优点是比使用追加方法向 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]

使用列表推导时代码更简洁。

5. 正确导入

应避免在不需要时导入不必要的模块和库。你可以指定模块名,而不是导入整个库。

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

示例:

假设你需要计算一个数的平方根。代替这样:

import math
value = math.sqrt(50)

使用这个:

from math import sqrt
value = sqrt(50)

6. 字符串连接

在 Python 中,我们使用‘+’运算符连接字符串。但在 Python 中连接字符串的另一种方式是使用 join 方法。

Join 方法是一种更具 Python 风格的字符串连接方式,并且比使用‘+’运算符连接字符串更快。

join() 方法更快的原因是‘+’运算符每一步都会创建一个新字符串并复制旧字符串,而 join() 方法并不会这样工作。

示例:

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

使用 join 方法:

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

两种方法的输出结果是相同的。唯一的区别是 join() 方法比‘+’运算符更快。

结论

这篇文章到此为止。在这篇文章中,我们讨论了一些可以使代码运行更快的技巧。这些技巧特别适用于竞争编程,其中时间限制至关重要。

希望你喜欢这篇文章。感谢阅读!

Pralabh Saxena 是一名拥有 1 年经验的软件开发人员。Pralabh 撰写文章 涉及 Python、机器学习、数据科学和 SQL 等主题。

更多相关内容