python 高效,python小技巧及速度提高
小伙伴们在日常工作中使用Python实现一些简单的功能,但是不同人写的代码执行效率往往不一样。下面这篇文章主要介绍Python中的四个高效技巧,有需要的朋友可以参考一下。
00-1010反转列表以交换两个值,并在函数内循环以减少函数调用的次数。总结今天我想和大家分享四个省时的Python小技巧,可以节省10~20%的Python执行时间。
目录
Python中通常有两种反转列表的方法:切片或reverse()函数调用。两种方法都可以反转列表,但是需要注意的是,内置函数reverse()会改变原来的列表,而切片方法会创建一个新的列表。
但是他们的表现呢?哪种方式更有效?让我们看看下面的例子:
使用切片:
$ python-m time it-n 1000000-s import numpy as NP my list=list(NP . arange(0,200)) mylist[:-1]
1000000次循环,最好5:次,每次循环15.6微秒
使用 reverse():
$ python-m time it-n 1000000-s import numpy as NP my list=list(NP . arange(0,200)) mylist.reverse()
1000000次循环,最好5:次,每次循环10.7微秒
两种方法都可以反转列表,但是需要注意的是,内置函数reverse()会改变原来的列表,而切片方法会创建一个新的列表。
很明显,内置函数reverse()比列表切片法更快!
反转列表
用一行代码交换两个变量值是一种更具Python风格的方法。
与其他编程语言不同,Python不需要使用临时变量来交换两个数字或值。举个简单的例子:
变量_1=100
变量_2=500
要交换variable_1和variable_2的值,只需要一行代码。
变量1,变量2=变量2,变量1
您也可以对字典使用相同的技术:
md[key_2],md[key_1]=md[key_1],md[key_2]
这种技术可以避免多次迭代和复杂的数据转换,从而减少执行时间。
交换两个值
我们都喜欢创建自定义函数来执行我们自己的特定任务。然后使用for循环迭代这些函数,并多次重复该任务。
但是,在for循环中使用函数会花费较长的执行时间,因为每次迭代都会调用该函数。
相反,如果一个for循环是在一个函数内部实现的,那么这个函数只会被调用一次。
为了解释得更清楚,我们举个例子吧!
首先创建一个简单的字符串列表:
list_of_strings=[苹果,橘子,香蕉,菠萝,葡萄]
创建两个函数,函数内外都有for循环。从简单的开始。
仅定义_函数(x):
new _ string=x.capitalize()
out_putstring=x new_string
打印(输出字符串)
和一个带循环的for函数:
函数中的定义(listofstrings):
对于list_of_strings:中的x
new _ string=x.capitalize()
输出字符串=x 新字符串
打印(输出字符串)
显然,这两个函数的输出是相同的。
那么,我们来比较一下,哪个更快?
如您所见,在函数中使用for循环会稍微快一些。
在函数内部循环
判断对象的类型时,最好使用isinstance(),其次是对象类型标识id(),最后是对象值类型()。
#检查num是否为int类型
type(num)==type(0) #三次函数调用
type(num)是type(0) #两个函数调用
isinstance(num,(int)) #一次函数调用
不要将重复操作的内容作为参数放在循环条件中,以避免重复操作。
# len(a)将被调用的每个循环
我借(a):
声明
#只执行len(a)一次
m=len(a)
而我m:
声明
要在模块X中使用函数或对象Y,请直接使用from X import Y而不是import X;然后X.Y .这样在使用Y的时候就减少了一次查表(解释器不用先查X模块,再在X模块的字典里查Y)。
总而言之,你可以充分利用Python的内置函数。提高Python程序的速度,同时保持代码简洁易懂。
如果想了解Python内置函数的更多信息,可以参考下表或者查看以下网站(https://docs . Python . org/3/library/functions . html):
减少函数调用次数
关于Python中四个高效省时的技巧的这篇文章到此为止。关于Python高效技巧的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。