Python代码编写中的性能优化点

  
 <代码> 1。交换赋值
  # #不推荐
  temp=一个
  a=b
  b=一个
  
  # #推荐
  a, b=b, #先生成一个元组(tuple)对象,然后解压缩
  2. 拆包
  # #不推荐
  l=[“大卫”,“python支持者”、“+ 1-514-555-1234”)
  first_name=l [0]
  last_name=l [1]
  phone_number=l [2]
  
  # #推荐
  l=[“大卫”,“python支持者”、“+ 1-514-555-1234”)
  first_name、last_name phone_number=l
  # Python 3只
  首先,去年=another_list *中间,
  3.使用操作符
  # #不推荐
  如果水果==捌还被蛩?=俺壬蛩?=敖?
  #多次判断
  
  # #推荐
  如果水果(“苹果”、“橙”、“浆果”):
  #使用在更加简洁
  4. 字符串操作
  # #不推荐
  颜色=(“红”、“蓝”、“绿色”、“黄色”)
  
  结果="
  年代的颜色:
  结果+=#每次赋值都丢弃以前的字符串对象,生成一个新对象
  
  # #推荐
  颜色=(“红”、“蓝”、“绿色”、“黄色”)
  结果=" . join(颜色)#没有额外的内存分配
  5. 字典键值列表
  # #不推荐
  关键在my_dict.keys ():
  # my_dict(例子)……
  
  # #推荐
  在my_dict关键:
  # my_dict(例子)……
  
  #只有当循环中需要更改键值的情况下,我们需要使用my_dict.keys ()
  #生成静态的键值列表。
  6. 字典键值判断
  # #不推荐
  如果my_dict.has_key(重要):
  #……做一些与d(例子)
  
  # #推荐
  如果在my_dict关键:
  #……做一些与d(例子)
  7. 字典得到和setdefault方法
  # #不推荐
  资产净值={}
  (投资、股票、位置)的数据:
  如果投资组合净值:
  资产净值(资产)=0
  资产净值(投资组合)+=*位置价格(股票)
  # #推荐
  资产净值={}
  (投资、股票、位置)的数据:
  #使用得到的方法
  资产净值(投资组合)资产净值=?组合,0)+位置*价格(股票)
  #或者使用setdefault方法
  资产净值。setdefault(组合,0)
  资产净值(投资组合)+=*位置价格(股票)
  8. 判断真伪
  # #不推荐
  如果x==True:
  #……
  如果len(项目)!=0:
  #……
  如果物品!=[]:
  #……
  
  # #推荐
  如果x:
  #……
  如果物品:
  #……
  9. 遍历列表以及索引
  # #不推荐
  项='一百二十三' .split ()
  #方法1
  我=0
  项目的项目:
  我打印,项
  我+=1
  #方法2
  因为我在范围(len(项目):
  打印我项目[我]
  
  # #推荐
  项='一百二十三' .split ()
  对于我,项列举(项目):
  我打印,项
  10. 列表推导
  # #不推荐
  new_list=[]
  在a_list:项
  如果条件(项目):
  new_list.append (fn(项目))
  
  # #推荐
  new_list=(fn(项)项a_list如果条件(项目))
  11. 列表推导——嵌套
  # #不推荐
  在nested_list sub_list:
  如果list_condition (sub_list):
  在sub_list:项
  如果item_condition(项):
  #做某事…
  # #推荐
  创=(sl的项nested_list如果list_condition (sl) \
  项目在sl如果item_condition(项目))
  创的项目:
  #做某事…
  12. 循环嵌套
  # #不推荐
  在x_list x:
  在y_list y:
  在z_list z:
  #做x, amp;y
  
  # #推荐
  出现从itertools进口产品
  在产品(x, y, z x_list、y_list z_list):
  #做x, y, z
  13. 尽量使用生成器代替列表
  # #不推荐
  def my_range (n):
  我=0
  结果=[]
  当我和lt;护士:
  result.append (fn (i))
  我+=1
  返回结果#返回列表
  
  # #推荐
  def my_range (n):
  我=0
  结果=[]
  当我和lt;护士:
  收益率fn (i) #使用生成器代替列表
  我+=1
  *尽量用生成器代替列表,除非必须用到列表特有的函数。
  14. 中间结果尽量使用imap/ifilter代替map/过滤器
  # #不推荐
  减少(射频滤波器(ff,地图(mf a_list)))
  
  # #推荐
  出现从itertools进口ifilter, imap
  减少(rf ifilter (ff、imap (mf a_list)))
  *懒惰的评价会带来更高的内存使用效率,特别是当处理大数据操作的时候。
  15. 使用任何/所有函数
  # #不推荐
  发现=False
  在a_list:项
  如果条件(项目):
  发现=True
  打破
  如果发现:
  #做一些如果发现……
  
  # #推荐
  如果任何(a_list条件(项目)项目):
  #做一些如果发现……
  16. 属性(财产)
  =
  
  # #不推荐
  类时钟(对象):
  def __init__(自我):
  自我。__hour=1
  def setHour(自我,小时):
  如果25,gt;小时,gt;0:自我。__hour=小时
  其他:提高BadHourException
  def getHour(自我):
  返回self.__hour
  
  # #推荐
  类时钟(对象):
  def __init__(自我):
  自我。__hour=1
  def __setHour(自我,小时):
  如果25,gt;小时,gt;0:自我。__hour=小时
  其他:提高BadHourException
  def __getHour(自我):
  返回self.__hour
  小时=属性(__getHour __setHour)
  17. 使用的处理文件打开
  # #不推荐
  开放(f=皊ome_file.txt”)
  试一试:
  data=https://www.yisu.com/zixun/f.read ()
  #其他文件操作. .
  最后:
  f.close ()
  
  # #推荐
  张开f (“some_file.txt”):
  data=https://www.yisu.com/zixun/f.read ()
  #其他文件操作…
  18. 使用,忽视异常(仅限Python 3)
  # #不推荐
  试一试:
  os.remove (“somefile.txt”)
  除了OSError:
  通过
  
  # #推荐
  从contextlib进口忽略# Python 3只
  
  与忽略(OSError):
  os.remove (“somefile.txt”)
  19. 使用的处理加锁
  # #不推荐
  进口线程
  锁=threading.Lock ()
  
  lock.acquire ()
  试一试:
  #互斥操作…
  最后:
  lock.release ()
  
  # #推荐
  进口线程
  锁=threading.Lock ()
  
  锁:
  #互斥操作…

Python代码编写中的性能优化点