python提高效率(优化)的心得总结(代码片段)

卖山楂啦prss 卖山楂啦prss     2023-02-02     510

关键词:

转载自:python提高效率(优化)的心得总结
作者:Capricorn.python


用python也有小两年了,不是开发,所以代码应该没那么精湛。但是经常会写测试脚本和小工具。在积累了大量的库以后,开始把重点放在提高python效率的方法,养成好的习惯。因为是刚刚开始关注,所以不断补充吧,以便将来随时查看。

一、原则类

1.把range全部换成xrange

2.生成器,如 list=(item for item in fp)

3.利用psyco库,提高函数和类的运行效率。

4.字符串拼接:尽量少用“+”的方式,而采用’’.join ,还有"%s"%i这样赋值的手段

5.函数的开销很大。尽量把循环放在函数内进行。而不要让每次迭代都调用函数。

6.“前提工作”先做好,比如该赋值,该拼接的,然后再引入到函数中,或者进行下面的循环。

7.尽量使用内置方法,因为内置的是C写的,效率肯定高很多

8.每当要对序列中的内容进行循环处理时,就应当尝试用列表解析来代替它,如:[i for i in xrang(10) if i%2==0]

9.学会使用itertools模块。当python中添加了迭代器后,就为常见模式提供了一个新的模块,因为它是以C语言编写,所以提供了最高效的迭代器。

–多记录一些。列表,字符串,字典,xrange,类文件对象,这些都是可迭代对象,换句话说,都可以直接用在for循环中进行迭代,如for item in open('1.txt')

–直接使用速度会快。另外,我对比了itertools里工具和xrange,比如都循环100000次打印数字,使用islice(count(),100000)均要比xrange(100000)

–而xrange还要比range快。

10.用列表解析取代for循环。列表解析的效率等于或高于map。

11.垃圾回收机制,会对列表的操作有重大影响,如列表的append,或者列表解析。import gc,然后在数据载入模块前gc.disable(),结束后再gc.enable()

二、应用类

1.列表推导

如果想复制一个列表或者字典,直接使用L1=list(L),d1 = dict(d).而不要使用列表推导。

如果想对列表的每一个元素都调用函数,应该用L1=map(f,L),而不是L1=[f(x) for x in L]

当序列过长,每次只需要读取一个元素的时候,应该用生成器,而不是列表推导。total=sum(x+23 for x in lodlist if x >5)

2.从文件中读取指定的行

标准库linecache非常适合这个任务:

import linecache

theline = linecache.getline(thefilepath,desired_line_number)

如果文件很大,则应该使用显示的循环,并封装在一个函数中:

def getline(thefilepath,desired_line_number):
    if desired_line_number < 1:return ''
    for current_line_number,line in enumerate(open(thefilepath,'rU')):
        if current_line_number == desired_line_number-1:
            return line
        return ''

3.何时用列表推导or生成器表达式

如果你希望使用整个列表,则使用列表推导,因为他会节省生成器带来的系统开销;

如果你只想用列表的一部分,那么使用生成器吧。

4.随机取出列表里的元素

应该先用random.shuffle(list)把元素随机的打乱,然后顺序的取每一项即可。如果不想取到重复的,可以用list.pop(),既取出来了,又把这个元素从列表中删除。而且内置的pop方法,非常快速。

我希望python进阶。但在这之前,我还要修饰一下边幅,上面所述的,就是在美化你的python程序。完成一个功能时,尽可能简洁,不罗嗦,每个细节提前考虑优化。脚本耦合性太强也会影响效率。

不断补充吧。

三、文本处理

文本处理,字符串处理,应该是平时用的非常多的,这里也有优化技巧。

1.习惯用filter或map

 fp = open('1.txt','rb')

 isRegDBRoot = lambda line:line.startswith('RegDB Root')

 #or

 isRegDBRoot = lambda line:'Start' in line

 a = filter(isRegDBRoot,fp)

结果输出所有符合项的列表集合。

用例结构优化心得

...的测试中通常都伴随着大量的测试用例。如何优化用例以提高编写的效率,如何组织用例以提高执行的效率经常困扰着我们;因此总结了一些在编写用例时的心得。1.用例框架的优化一份好的用例设计需要有一个好的用例框架的... 查看详情

使用django-debug-toolbar优化query提高代码效率(代码片段)

...用Django-debug-toolbar能够快速找出哪些地方的SQL可以优化,提高程序执行效率 1.安装 Django-debug-toolbar:pipinstalldjango-debug-toolbar 2.在Django项目中创建APP用于toolbar测试: 查看详情

python常用小脚本总结(代码片段)

...中常会遇到一些小任务,如果人工处理会很麻烦。用python做些小脚本处理,能够提高不少效率。或者可以把python当工具使用,辅助提高一下办公效率。(比如我常拿python当计算器,计算和字符转换用)以下总结下个... 查看详情

理解cpu分支预测,提高代码效率(代码片段)

...、产品性能优化和用户体验改善等小技巧方面的分享,以提高我们的工作能力。技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,也会体现在优秀程序员在工作效率提... 查看详情

提高python运行效率的5个技巧

与其他编程语言相比,Python最大的特点就是能够让你在短时间内用极少的代码,实现大量的操作,比如:Java编写一个程序需要百行代码,而Python只需要十几行就能搞定。本篇文章为大家介绍一下提高Python运行效率的5个技巧,一... 查看详情

spring总结之一(代码片段)

...展快。轻量级:占内存小。简化开发:通用的功能封装,提高程序员的开发效率。------------------------------------------------------------------2.特点:1)简化开发,提高开发效率2)解耦3)集成第三方优秀的框架------------------------- 查看详情

性能优化总结(代码片段)

...会表现为服务可用性下降,所以性能优化也可以包括提高服务可用性.为了提高服务可用性,对异常请求重复调用是一个常用的做 查看详情

python列表最常见的问题总结(代码片段)

列表是Python中使用最多的一种数据结果,如何高效操作列表是提高代码运行效率的关键,本文总结了一些python列表最常见的问题,希望能对大家有帮助。1、迭代列表时如何访问列表下标索引普通版:items=[8,23,45]forindexinrange(len(ite... 查看详情

如何优化java代码及提高执行效率(转)

...的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重... 查看详情

java开源数据库语言基于spl如何提高sql优化效率(代码片段)

很多大数据计算都是用SQL实现的,跑得慢时就要去优化SQL,但常常碰到让人干瞪眼的情况。比如,存储过程中有三条大概形如这样的语句执行得很慢:selecta,b,sum(x)fromTgroupbya,bwhere…;selectc,d,max(y)fromTgroupbyc,dwhere…;se... 查看详情

api接口性能优化总结(代码片段)

...能优化手段通常有批量请求数据库,我们一般会用in,提高数据库查询效率调用外部服务,我们也需要管提供方要批量接口,避免多次网络请求批量查询的id数量也不宜过多之前在sqlIN一文中分析过,IN的数量太多时&... 查看详情

提高运行效率(代码片段)

提高运行效率用join()方法拼接字符串,避免使用+多用字典来查找,不要用列表多用numpy,pandasmap函数等内置函数多用对于常用包内函数,尽量在开头定义引用range全部换成xrange请求多个接口优化,异步请求&#... 查看详情

提高千倍效率的java代码小技巧(代码片段)

前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小... 查看详情

windows系统优化-查看并清理临时文件,释放磁盘空间,提高系统运行效率(代码片段)

Win+R打开运行窗口,输入%temp%可以打开临时文件存储路径。路径里都是系统以及各个应用程序用于存放临时文件的地方,可以全部删除。有少量的文件的删除不了是由于正在运行的程序占用了一部分。rmdir/Q/S文件夹可... 查看详情

python代码性能优化技巧

...了脚本语言就要忍受其速度,这句话在某种程度上说明了python作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在performance较差的机器上,因此有必要进行一定的代码优化来提高程序的执行效率。如何进行Python... 查看详情

scrapy框架的日志等级和请求传参,优化效率(代码片段)

...等级和请求传参,优化效率Scrapy的日志等级请求传参如何提高scripy的爬取效率scrapy框架的日志等级和请求传参,优化效率Scrapy的日志等级在使用scrapycrawlspiderFileName运行程序时,在终端里打印输出的就是scrapy的日志信息。日志信息的... 查看详情

20172301《程序设计与数据结构》第一周学习总结(代码片段)

...量可移植性:能在不同开发环境下能顺利运行运行效率:提高软件运行效率,优化CPU时间和内存数据结构数据结构是计算机存储、组织 查看详情

mysql数据库性能优化大总结(代码片段)

...的因素超高的QPS(每秒钟处理的查询量)和TPS导致SQL处理效率下降。大量的并发导致的数据库连接数被占满和超高的CPU占用率导致资源耗尽服务器宕机。磁盘IO性能瓶颈导致数据传输效率下降,计划任务导致磁盘IO下降。网卡IO性... 查看详情