当前位置: 首页 > 科技观察

Python中的四个高效技巧!

时间:2023-03-20 02:19:01 科技观察

反转列表在Python中通常有两种反转列表的方法:切片或reverse()函数调用。这两种方法都可以反转列表,但需要注意的是,内置函数reverse()会更改原始列表,而切片方法会创建一个新列表。但是他们的表现呢?哪种方式更有效?我们看下面的例子:使用切片:$python-mtimeit-n1000000-s'importnumpyasnp''mylist=list(np.arange(0,200))''mylist[::-1]'1000000loops,bestof5:15.6usecperloop使用reverse():$python-mtimeit-n1000000-s'importnumpyasnp''mylist=list(np.arange(0,200))''mylist.reverse()'1000000loops,bestof5:10.7usecperloop这两种方法都可以反转list,但请注意,内置函数reverse()会更改原始列表,而slice方法会创建一个新列表。显然,内置函数reverse()比列表切片方法更快!交换两个值有一??种更Pythonic的方式用一行代码交换两个变量值。与其他编程语言不同,Python不需要使用临时变量来交换两个数字或值。一个简单的例子:variable_1=100variable_2=500要交换variable_1和variable_2的值,只需要一行代码。variable_1,variable_2=variable_2,variable_1你也可以对字典使用相同的技巧:md[key_2],md[key_1]=md[key_1],md[key_2]这个技巧避免了多次迭代和复杂的数据转换,从而减少了执行时间.在函数内部循环我们都喜欢创建自定义函数来执行我们自己的特定任务。然后使用for循环遍历函数,多次重复该任务。但是,在for循环中使用函数需要更长的执行时间,因为每次迭代都会调用该函数。相反,如果在函数内部实现了for循环,则该函数只会被调用一次。为了解释的更清楚,我们举个例子吧!先创建一个简单的字符串列表:list_of_strings=['apple','orange','banana','pineapple','grape']创建两个函数内外都有for循环的函数,从简单开始。defonly_function(x):new_string=x.capitalize()out_putstring=x+""+new_stringprint(output_string)和一个带循环的for函数:deffor_in_function(listofstrings):forxinlist_of_strings:new_string=x.capitalize()output_string=x+""+new_stringprint(output_string)显然,这两个函数的输出是一样的。那我们来比较一下,哪个更快?如您所见,在函数内部使用for循环稍微快一些。在减少确定对象类型的函数调用次数时,最好使用isinstance(),然后是对象类型标识符id(),最后是对象值type()。#Checkifnumaninttypetype(num)==type(0)#Threefunctioncallstype(num)istype(0)#Twofunctioncallsisinstance(num,(int))#Onefunctioncall不要将重复操作的内容作为参数放在循环条件中,避免重复操作.#Eachloopthelen(a)willbecalledwhilei