python中一些简单的代码优化细节

关于优化不得不说的八点


  1. 字符串拼接优化:字符串大量拼接尽量用join方法,但当拼接的字符串只有几个或者几十个,使用+号效率反而高于join。
  2. 循环优化:将内层计算提到上一层。
  3. 充分利用 Lazy if-evaluation的特性:if x and y 在x为false的情况下,y不再计算,尽量将鲜明false条件提前,
    if x or y,尽量将鲜明true条件提前。
  4. if done is not None 比语句 if done != None 更快。
  5. 使用级联比较 "x < y < z" 而不是 "x < y and y < z"。
  6. while 1 要比 while True 更快。
  7. += 要比 a = a + b 要快,用列表举例 a += b,使用 += 的话就像是使用了a.extend(b),如果使用 + 的话,
    则是 a = a+b,前者是直接在原列表上进行扩展,而后者是先从原列表中取出值,在一个新的列表中进行扩展,
    然后再将新的列表对象返回给变量,显然后者的消耗要大些。所以在能使用增量赋值的时候尽量使用它。
  8. is 运算符比 == 效率高,在变量和None进行比较时,应该使用 is

我觉得以初学者的角度来说,如果能做好这几条优化小细节,对之后的改善编程习惯和提高程序效率上应该会有所提高。

原文地址:https://www.cnblogs.com/why72/p/11218169.html

时间: 2024-10-22 00:54:54

python中一些简单的代码优化细节的相关文章

Python中的简单计算

Python中的简单计算 (1)基本的加减乘除 >>> 2 + 2 4 >>> 50 - 5*6 20 >>> (50 - 5*6) / 4 5.0 >>> 8 / 5  1.6 (2)除法总是会返回一个浮点数,想要返回整数,需要用"//"来表示(floor division),另外,可以用"%"进行取余操作 >>> 17 / 3  # classic division ret

python中一个简单的webserver

python中一个简单的webserver 2013-02-24 15:37:49 分类: Python/Ruby 支持多线程的webserver 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/python from SocketServer import ThreadingMixIn from BaseHTTPServer import HTTPServer,BaseHTTPRequestHandler cla

mysql数据库在Python中的简单操作

from pymysql import connect def check_data(cur): sql = "select * from student;" # sql语句 cur.execute(sql) # 执行sql语句 # 获取查询的所有记录 result = cur.fetchall() print(result) for value in result: print(value) def insert_data(cur, conn): sql = ""

python中HTMLParser简单理解

找一个网页,例如https://www.python.org/events/python-events/,用浏览器查看源码并复制,然后尝试解析一下HTML,输出Python官网发布的会议时间.名称和地点. 1 from html.parser import HTMLParser 2 from html.entities import name2codepoint 3 4 class MyHTMLParser(HTMLParser): 5 6 in_title = False 7 in_loca

关于Python中如何使用静态、类、抽象方法的权威指南(译)

对于Python中静态.类.抽象方法的使用,我是一直很迷糊的.最近看到一篇技术文章对这方面解释的很好,在此翻译一下,加深印象,也为有需要的同学提供一个方便. Python中方法是如何工作的: 方法即函数,作为一个类的属性存储.你能像如下申明和访问一个函数: >>> class Pizza(object): ... def __init__(self,size): ... self.size = size ... def get_size(self): ... return self.si

python中的数据类型转换

今天想要写的是python中比较简单但是又相对重要的数据类型之间的互相转换.所谓数据类型转换其实很简单,生活中就有很多的例子,比如:15+2.2=17.2,看着好像只是一次普通的数学运算,但是却存在了一次数据类型之间的转换."15"在数据类型中被称为整型,"2.2"在数据类型中则被称之为浮点型,那么在我们的程序中整型是没办法直接和浮点型的数据进行运算操作,这时候我们可爱的python就偷偷的将"15"转化成了"15.0"的浮点

Python中的lambda的简单介绍

在学习python的过程中,lambda的语法经常出现,现在将它整理一下,以备日后查看. 1.lambda是什么? 举个例子如下: 1 func=lambda x:x+1 2 print(func(1)) 3 #2 4 print(func(2)) 5 #3 6 7 #以上lambda等同于以下函数 8 def func(x): 9 return(x+1) 可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体.在这里lambda简化了函数定义的书写

Python中基本的读文件和简单数据处理

Python中基本的读文件和简单数据处理 暂无评论 DataQuest上面的免费课程(本文是Python基础课程部分),里面有些很基础的东西(csv文件读,字符串预处理等),发在这里做记录.涉及下面六个案例: Find the lowest crime rate(读取csv文件,字符串切分,for循环和if判断过滤数据) Discover weather pattern in LA(for循环和if判断进行频数统计) Building a Spell Checker(词频统计,字符串预处理,字典

Python中关于txt的简单读写模式与操作

Python中关于txt的简单读写操作 常用的集中读写模式: 1.r 打开只读文件,该文件必须存在. 2.r+ 打开可读写的文件,该文件必须存在. 3.w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立该文件. 4.w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失.若文件不存在则建立该文件. 5.a 以附加的方式打开只写文件.若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留. 6.a+ 以附加方式