文章最后有免费的Python资料,获取方式,关注头条号,私信回复资料获取下载链接。资料目录在文章底部,欢迎评论转发收藏下载。

有人跟我抱怨说python太慢了,然后我就将python健步如飞的六大技巧传授给他,结果让他惊呆了,你也想知道这个秘诀吗?这就告诉你:

python编程健步如飞!" alt="掌握六大技巧,让python编程健步如飞!" style="box-sizing: border-box; padding-top: 0.6rem; padding-bottom: 1.5rem; list-style: none; border-width: 0px; border-style: initial; border-color: initial; outline: none; vertical-align: middle;" class="" data-ratio="0.714" data-w="1000" data-type="jpeg">

Python是一门优秀的语言,它能让你在短时间内通过极少量代码就能完成许多操作。不仅如此,它还轻松支持多任务处理,比如多进程。

因为GIL的存在,Python很难充分利用多核CPU的优势。但是,可以通过内置的模块multiprocessing实现下面几种并行模式:

多进程并行编程

对于CPU密集型的程序,可以使用multiprocessing的Process,Pool等封装好的类,通过多进程的方式实现并行计算。但是因为进程中的通信成本比较大,对于进程之间需要大量数据交互的程序效率未必有大的提高。

多线程并行编程

对于IO密集型的程序,multiprocessing.dummy模块使用multiprocessing的接口封装threading,使得多线程编程也变得非常轻松(比如可以使用Pool的map接口,简洁高效)。分布式:multiprocessing中的Managers类提供了可以在不同进程之共享数据的方式,可以在此基础上开发出分布式的程序。 不同的业务场景可以选择其中的一种或几种的组合实现程序性能的优化。

优化算法时间

法的时间复杂度对程序的执行效率影响最大,在Python中可以通过选择合适的数据结构来优化时间复杂度,如list和set查找某一个元素的时间复杂度分别是O(n)和O(1)。不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想。

例如:set的用法

set的union,intersection,difference操作要比list的迭代要快。因此如果涉及到求list交集,并集或者差的问题可以转换为set来操作。

针对循环的优化

每种编程语言都会强调需要优化循环。当使用Python的时候,你可以依靠大量的技巧使得循环运行得更快。然而,开发者经常漏掉的一个方法是:避免在一个循环中使用点操作。例如,考虑下面的代码:

每一次你调用方法str.upper,Python都会求该方法的值。然而,如果你用一个变量代替求得的值,值就变成了已知的,Python就可以更快地执行任务。优化循环的关键,是要减少Python在循环内部执行的工作量,因为Python原生的解释器在那种情况下,真的会减缓执行的速度。

lowerlist = ['this', 'is', 'lowercase']

upper = str.upper

upperlist = []

append = upperlist.append

for word in lowerlist:

append(upper(word))

print(upperlist)

#Output = ['THIS', 'IS', 'LOWERCASE']

函数选择

在循环的时候使用xrange而不是range;使用xrange可以节省大量的系统内存,因为xrange()在序列中每次调用只产生一个整数元素。而range()將直接返回完整的元素列表,用于循环时会有不必要的开销。在python3中xrange不再存在,里面range提供一个可以遍历任意长度的范围的iterator。

使用性能分析工具

除了上面在ipython使用到的timeit模块,还有cProfile。cProfile的使用方式也非常简单:python–m cProfile filename.py,filename.py是要运行程序的文件名,可以在标准输出中看到每一个函数被调用的次数和运行的时间,从而找到程序的性能瓶颈,然后可以有针对性地优化。

下边有Python的基础学习资料,可以免费领取。

掌握6大技巧,让python编程健步如飞!相关推荐

  1. python编程优化_掌握六大技巧,让python编程健步如飞!

    有人跟我抱怨说python太慢了,然后我就将python健步如飞的六大技巧传授给他,结果让他惊呆了,你也想知道这个秘诀吗?这就告诉你: Python是一门优秀的语言,它能让你在短时间内通过极少量代码就 ...

  2. 用这10个小技巧加速Python编程

    编码很有趣,而Python编码更有趣,因为有很多不同的方法可以实现相同的功能.但是,大多数时候都有一些首选的实现方法,有些人将其称为Pythonic.这些Pythonic的共同特征是实现的代码简洁明了 ...

  3. python 广告联盟_聚力商城的Python编程书怎么样?

    大数据时代Python编程优显其作用,身边很多人都在学,有的还能自学成才,所以我最近也在聚力商城买了一本Python编程书,很多人不知道聚力商城的Python编程书怎么样?我就来说说自己的感受吧. 这 ...

  4. python编程大数据分析_大数据分析Python学习技巧

    大数据分析Python是任何开发人员都应该知道的重要编程语言.许多程序员使用这种语言来构建网站,创建学习算法以及执行其他重要任务.但是尝试学习大数据分析Python可能会令人感到恐惧,沮丧和困难,尤其 ...

  5. Python编程进阶,常用8大技巧!

    选自medium,作者:Martin Heinz 机器之心编译 介绍 Python 炫酷功能(例如,变量解包,偏函数,枚举可迭代对象等)的文章层出不穷.但是还有很多 Python 的编程小技巧鲜被提及 ...

  6. python编程计算前30项的和_Python 程序员需要知道的 30 个技巧

    如果你让一个 Python 程序员说一下 Python 的优势,他会说简洁以及高可读是最有影响力的优势.为证明上述两点,在这个 Python 教程里,我们将聊聊许多基本的 Python 建议和技巧. ...

  7. 学习 Python 编程的 11 个受用终身的技巧

    很多人会私信我文我 学习 Python 的最佳方法是什么 ? 我相信学习任何编程语言的第一步是确保你了解学习方法.掌握学习方法是计算机编程中最关键的技能.随着语言的发展.库的创建和工具的升级.知道如何 ...

  8. 学习Python编程的11个入门技巧

    We are so excited that you have decided to embark on the journey of learning Python! One of the most ...

  9. python编程的基本方法有哪些_学习Python编程的11个入门技巧

    我们非常激动,您决定开始学习Python的旅程!我们从读者那里收到的最常见问题之一是"学习Python的最佳方法是什么?" 我相信学习任何编程语言的第一步就是要确保您了解如何学习. ...

  10. 学习大数据分析python编程指南

    每个人都喜欢Python.如果您打算开始从事数据科学事业,我们可以肯定Python在您心中已经占有特殊的位置.它直观且易于在任何平台上运行,并且具有大量令人惊叹的库和工具.与其他编程语言相比,Pyth ...

最新文章

  1. apex英雄机器人探路者怎么玩_《Apex英雄》探路者机器人怎么玩 探路者机器人技能特性及玩法...
  2. 【操作系统】实验二 作业调度模拟程序
  3. 晒晒今年淘宝网买的李宁鞋子
  4. 【做题记录】[SCOI2009]围豆豆
  5. linux 线程的运行时间吗,Linux下巧用ps得到运行线程个数和线程启动时间
  6. 选择爱人的数学方法(经典秘书问题)
  7. 南阳理工acm449 不再爱你……
  8. 背包问题之完全背包算法详解
  9. 2021-2027全球与中国相控阵校准测试系统市场现状及未来发展趋势
  10. ❤ ❤html canvas面向对象的彩色小球❤ ❤
  11. APP崩溃的主要原因
  12. 美国西北大学 计算机工程专业排名,2013年美国大学排名--USNEWS计算机工程专业排名...
  13. 倍福PLC部署Jenkins入门使用笔记
  14. Linux常见压缩工具
  15. 趁着中秋节来临之际,学学如何做好团队管理
  16. 阿里ODPS降低大数据应用门槛
  17. 前端-html-01
  18. PTA阿泽的交友标准
  19. java 爬取百度云盘,htmlunit 爬取百度云资源
  20. pycharm安装nodejs插件运行js代码

热门文章

  1. Atitti css transition Animation differ区别
  2. paip.c++ bcb string 转换操作大总结.
  3. 保障电邮EMAIL通讯的安全性
  4. “电”亮数字生活,阿里云助力南方电网智能调度
  5. 【优化求解】基于matlab NSGA2算法多技能员工调度优化模型【含Matlab源码 1775期】
  6. 【优化算法】世界杯优化算法(WCOA)【含Matlab源码 1427期】
  7. 【电力负荷预测】基于matlab粒子群算法优化支持向量机预测电力负荷【含Matlab源码 1225期】
  8. 【OFDM通信】基于matlab OFDM通信系统仿真【含Matlab源码 1005期】
  9. 【数字信号】基于matlab GUI可编程电音合成器【含Matlab源码 872期】
  10. 【语音去噪】基于matlab改进谱减法语音去噪【含Matlab源码 569期】