0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

加快运行Python速度的五种技巧

如意 来源:Python学会 作者:Huangwei AI 2021-01-04 17:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

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

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)。

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4422

    浏览量

    67855
  • 源代码
    +关注

    关注

    96

    文章

    2953

    浏览量

    70648
  • python
    +关注

    关注

    58

    文章

    4885

    浏览量

    90314
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用PYTHON进行的跨平台仿真

    应用案例,其中我们在一维和二维光栅上执行参数扫描。 使用Python运行VirtualLab Fusion光学仿真 我们将演示如何使用Python在VirtualLab Fusion中运行
    发表于 04-02 08:21

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    摘要 VirtualLab Fusion允许Python外部访问其建模技术、求解器和结果。这个用例介绍了一使用路径变量和Visual Studio代码将Python连接到VirtualLab
    发表于 03-31 09:39

    [VirtualLab] 使用Python进行跨平台参数扫描

    摘要 VirtualLab Fusion允许外部访问其建模技术、求解器和结果。这有助于应用其他数据处理或优化工具来进一步研究光学模拟。在本示例中,我们演示如何使用Python脚本运行参数扫描,以及
    发表于 03-31 09:36

    如何在 VisionFive 上使用 Python 包?

    VisionFive Fedora 下的本地目录,请在源代码目录下执行以下命令: 提示:源代码可从以下位置下载:愿景.gpio. sudo yum install python
    发表于 03-30 08:28

    关于电机工频运行与变频器下运行的区别

    电机作为现代工业的核心动力设备,其运行方式的选择直接影响设备效率、能耗及寿命。工频运行与变频器驱动是两典型的工作模式,二者在技术原理、性能表现及适用场景上存在显著差异。以下从工作原理、能效特性、控制精度、机械影响及适用领域
    的头像 发表于 03-03 17:07 770次阅读

    1688 商品详情 API 调用与数据解析 Python 实战

    你想要的是 1688 商品详情 API 的 Python 调用与数据解析实战方案,核心是完成 API 凭证配置、接口请求(含签名)、响应数据解析、异常处理 的全流程落地,我会提供可直接运行的代码,并
    的头像 发表于 02-10 11:23 394次阅读

    Python运行本地Web服务并实现远程访问

    本文介绍使用Python搭建本地Web服务并结合 ZeroNews 实现公网访问。
    的头像 发表于 02-06 11:39 357次阅读
    <b class='flag-5'>Python</b><b class='flag-5'>运行</b>本地Web服务并实现远程访问

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块中的少数算法(如早期 SIFT
    发表于 12-13 12:37

    Termux中调试圣诞树Python代码

    在Termux中调试Python代码(以圣诞树立例)非常简单,核心分为环境准备、代码编写、运行调试三个步骤,下面一步步教你操作: 一、环境准备(首次使用需做) Termux默认可能没有Python
    发表于 12-09 09:02

    Pico Technology发布Python软件包pyPicoSDK

    现有 PicoSDK 的基础上构建,使工程师、开发人员和业余爱好者能够创建 Python 脚本,更加快速方便地控制其 PicoScope 设备。
    的头像 发表于 09-29 15:03 1114次阅读

    termux调试python猜数字游戏

    保存并运行 - `Ctrl+O` → `Enter` 保存文件 - `Ctrl+X` 退出编辑器 - 运行命令: ```bash python guess_number.py ``` 2. 游戏
    发表于 08-29 17:15

    速度与激情的碰撞:直线电机如何实现超高速运行

    在工业自动化领域,生产效率往往与运动速度直接挂钩。无论是半导体芯片的制造,还是锂电池的极耳切割,都对运动系统的速度提出了近乎苛刻的要求。传统“旋转电机+滚珠丝杠”的传动方案受其机械结构的先天限制,在
    的头像 发表于 08-29 09:48 854次阅读

    termux如何搭建python游戏

    termux如何搭建python游戏 Termux搭建Python游戏开发环境的完整指南 一、Termux基础环境准备 Termux是一款无需root即可在安卓设备上运行的Linux终端
    发表于 08-29 07:06

    python app不能运行怎么解决?

    我使用helloword的模板,上传了IG502,但不能运行,请大神帮忙。系统日志如下:sntpc[1226]: ntp request error: 113, No route to host
    发表于 08-06 06:27

    STM32IDE如何设定代码到ITCM中运行

    近期使用STM32MUX生成STM32IDE的代码(MCU是STM32H743),目前希望可以将部分代码定位到ITCM中运行加快处理速度,关于代码中的.id链接文件,该部分资料比较少,目前我只
    发表于 06-24 06:45