7个习惯提升python效率(译)

1. 使用本地变量

尽量使用局部变量,避免使用全局变量

2.减少函数调用

(1)当我们判断对象的类别的时候,尽量使用isinstance(),其次使用id(),最不济使用type()

type(num)==type(0)
type(num) is type(0)
isinstance(num,(int))

每次循环都会调用len(a)

while i < len(a):
    statement

只会执行一次len(a)

m = len(a)
while i<m:
    statement

3.使用字典来代替多种条件判断

if a==1:
  b=10
elif a==2:
  b=20
elif a==3:
  b=30

case = {1:10,2:20,3:30}
reslut = case[key]

4.遍历对象要比遍历对象的索引快

a = [1,2,3,4]
for item in a:
  print(item)

nums = len(a)
for item in range(nums):
  print(a[item])

5.将列表生成式替换成生成器

因为列表生成是会一次性把所有元素生成出来,如果元素过多的话就会占用大量内存
而生成器只会在调用的时候去执行

>>> sum(len(n) for n in line.split())
28
>>> line = 'sajhdnj sadkl auishc bzhxjas asjkn aksmx oasid'
>>> sum_word = [len(n) for n in line.split()]
>>> sum_word
[7, 5, 6, 7, 5, 5, 5]
>>> sum_word_g = (len(n) for n in line.split())
>>> sum_word_g
<generator object <genexpr> at 0x10a032410>
>>> for n in sum_word_g:
...     print(n)
... 
7
5
6
7
5
5
5

6.先编译然后调用

在使用函数eval()和exec()来执行的代码的时候,最好先使用compile()先进行预编译,而不是直接使用,这样可以避免重复编译的问题
正则匹配也是一样,最好先通过re.compile()

7.模块编写

在导入一个模块的时候,会执行这个没有缩进的代码。因此,应该把代码放在函数中。
测试代码可以写在模块的main()中,在代码运行的时候,会检测name的值,如果是main(表示直接运行的该模块,调用main()函数),如果是模块的名称(表示模块被调用),则不会执行测试。

原文地址:
https://www.tutorialdocs.com/article/7-habits-to-improve-python-programs.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.C和C++的区别?C++的特性?面向对象编程的好处? 答:c++在c的基础上增添类,C是一个结构化语言,它的重...
    杰伦哎呦哎呦阅读 9,593评论 0 45
  • 对于高手来说,集中精力认真工作,不是为了有朝一日停下来彻底休息。相反,高效休息,是为了更好的工作,抵达巅峰的状态。...
    林窗鲸落阅读 972评论 2 2
  • 在《拖延心理学》一书中,作者为我们呈现了一个实例。一个人在小学二年级的学生,常常会匆匆忙忙做完家庭作业,好早点出去...
    张善实阅读 491评论 0 0
  • 怎样写出好代码 【指南】如何写出好代码 代码就是设计(Jack W.Reeves, 1992) 代码是最有价值的交...
    layjoy阅读 347评论 0 2