六个小窍门,让你的 Python 代码运行得更快

admin 2021年9月14日19:16:54评论75 views字数 1782阅读5分56秒阅读模式

六个小窍门,让你的 Python 代码运行得更快

Python 是开发人员中最流行的编程语言之一。无论是在 Web 开发还是机器学习中,它几乎无处不在。

Python 受欢迎的原因有很多,比如它的社区支持、丰富的库、在机器学习和大数据中的广泛使用,以及它简洁的语法。

尽管有这么多优点,Python 有一个缺点,那就是它的速度慢。

作为一种解释型语言,Python 比其他语言要慢一些。不过,我们可以使用一些技巧来克服这个问题。

在本文中,我将分享一些 Python 技巧,使用它们可以使我们的 Python 代码运行得更快。让我们开始吧!


1正确的算法和数据结构

每个数据结构对运行时间都有显着影响。Python 中有很多内置的数据结构,例如列表、元组、集合和字典。大多数人在所有情况下都使用列表数据结构。

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

  • 您在集合中没有重复的项目

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

  • 该集合包含大量项目


2使用内置函数和库

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优先使用循环列表理解

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

与定义一个空列表并向该空列表添加元素相比,列表推导式被认为是一种更 Pythonic 的创建新列表的方式。

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

例子:

使用列表append方法:

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 中,我们使用+运算符连接字符串,但还有一种方法是 join。

join 方法是一种更 Pythonic 的字符串连接方式,也比用加号连接字符串更快。

join() 方法更快的原因是:用加号操作会创建一个新字符串,然后在每一步复制旧字符串,而 join() 方法不是这样的。

例子:

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

使用join方法:

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

两种方法的输出将相同。唯一的区别是该join()方法比+操作员更快。


7结论

这就是本文的全部内容。在本文中,我们讨论了一些可用于加快代码运行速度的技巧。希望你喜欢这篇文章。谢谢阅读!


作者:Pralabh Saxena

翻译:蓝桥云课

原文地址:

https://betterprogramming.pub/6-tips-to-make-python-code-run-incredibly-faster-932db815c3a8


👇👇👇 点击文末的「阅读原文」,学习更多 Python 课程~

本文始发于微信公众号(蓝桥云课精选):六个小窍门,让你的 Python 代码运行得更快

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年9月14日19:16:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   六个小窍门,让你的 Python 代码运行得更快http://cn-sec.com/archives/391692.html

发表评论

匿名网友 填写信息