搜索
您的当前位置:首页Python学习之提高Python运行效率的三个窍门

Python学习之提高Python运行效率的三个窍门

来源:小侦探旅游网


Python学习之提高Python运行效率的三个窍门

我们都知道Python是现在非常火的编程语言,处于发展阶段,上升空间非常大,它凭借自身易学、易读、难度低的优点吸引了越来越多的人学习它,今天小编给大家带来的就是关于提高Python运行效率的窍门,让你学习起来更加顺手。

窍门一:关键代码使用外部功能包

Python简化了许多编程任务,但是对于一些时间敏感的任务,它的表现经常不尽人意。使用C/C++或机器语言的外部功能包处理时间敏感任务,可以有效提高应用的运行效率。这些功能包往往依附于特定的平台,因此你要根据自己所用的平台选择合适的功能包。简而言之,这个窍门要你牺牲应用的可移植性以换取只有通过对底层主机的直接编程才能获得的运行效率。以下是一些你可以选择用来提升效率的功能包:

Cython Pylnlne

PyPy Pyrex

这些功能包的用处各有不同。比如说,使用C语言的数据类型,可以使涉及内存操作的任务更高效或者更直观。Pyrex就能帮助Python延展出这样的功能。Pylnline能使你在Python应用中直接使用C代码。内联代码是独立编译的,但是它把所有编译文件都保存在某处,并能充分利用C语言提供的高效率。

窍门二:在排序时使用键

Python含有许多古老的排序规则,这些规则在你创建定制的排序方法时会占用很多时间,而这些排序方法运行时也会拖延程序实际的运行速度。最佳的排序方法其实是尽可能多地使用键和内置的sort()方法。譬如,拿下面的代码来说:

importoperator

somelist=[(1,5,8),(6,2,4),(9,7,5)]

somelist.sort(key=operator.itemgetter(0)) somelist

#Output = [(1, 5, 8), (6, 2, 4), (9, 7, 5)] somelist.sort(key=operator.itemgetter(1)) somelist

#Output = [(6, 2, 4), (1, 5, 8), (9, 7, 5)] somelist.sort(key=operator.itemgetter(2)) somelist

#Output = [(6, 2, 4), (9, 7, 5), (1, 5, 8)],

在每段例子里,list都是根据你选择的用作关键参数的索引进行排序的。这个方法不仅对数值类型有效,还同样适用于字符串类型。

窍门三:针对循环的优化

每一种编程语言都强调最优化的循环方案。当使用Python时,你可以借助丰富的技巧让循环程序跑得更快。然而,开发者们经常遗忘的一个技巧是:尽量避免在循环中访问变量的属性。譬如,拿下面的代码来说:

lowerlist=['this','is','lowercase'] upper=str.upper upperlist=[]

append=upperlist.append forwordinlowerlist: append(upper(word))

print(upperlist)

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

每次你调用str.upper, Python都会计算这个式子的值。然而,如果你把这个求值赋值给一个变量,那么求值的结果就能提前知道,Python程序就能运行得更快。因此,关键就是尽可能减小Python在循环中的工作量。因为Python解释执行的特性,在上面的例子中会大大减慢它的速度。

(注意:优化循环的方法还有很多,这只是其中之一。比如,很多程序员会认为,列表推导式是提高循环速度的最佳方法。关键在于,优化循环方案是提高应用程序运行速度的上佳选择。)

窍门已经给你了,但是更多的还需要通过你自己的努力去学习,学习Python前景与高薪兼具,给自己的编程梦一个起飞的平台,让你的人生更加出彩!

因篇幅问题不能全部显示,请点此查看更多更全内容

Top