《18 条好用的 Python 技巧建议收藏!.docx》由会员分享,可在线阅读,更多相关《18 条好用的 Python 技巧建议收藏!.docx(19页珍藏版)》请在第壹文秘上搜索。
1、18条好用的Py1.hOn技巧,建议收藏!在这篇文章中,我们将讨论最常用的python技巧,大多数这些技巧都是我在日常工作中使用过的简单的Trick,我觉得好东西就是要拿出来和大家一起分享。闲话少说,我们直接开始吧!:)处理用户的多个输入有时我们需要从用户那里获得多个输入,以便使用循环或任何迭代,一般的写法如下:#badpractice码n1.=input(enternumber:)2=input(enternumber:)n2=input(enternumber:)print(n1.,n2,n3)但是更好的处理方法如下:# goodpracticen1.,n2,3=input(enteran
2、umber:).sp1.it()print(n1.,112,n3)处理多个条件语句如果我们在代码中需要检有多个条件语句,此时我们可以使用a1.1.()或any()函数来实现我们的目标。一般来说,当我们有多个and条件时使用a1.1.(),当我们有多个or条件时使用any().这种用法将使我们的代码更加清晰易读,可以方便我们在调试时不会遇到麻烦。对于a1.1.()的一股例子如下:size=,1.gco1.or=b1.ueprice=50# badpracticeifsize=,1.gandco1.or=b1.ueandprice100:print(YesjIwanttobuttheproduct
3、.)更好的处理方法如下:# goodpracticeconditions=size=1.g,co1.or=b1.ue,price100,ifa1.1.(conditions):rint(Yes,Iwanttobuttheproduct.,)对于any。的一般例子如下:# badpracticesize=1.gco1.or=b1.ueprice-50ifsize=1.g,orco1.or=b1.ueorprice100:print(Yes,Iwanttobuttheproduct.,)更好的处理方法如下:# goodpracticeconditions=size=,1.gjco1.or=b1.u
4、e,price18:print(userisverified)但是更好的处理方法如下:# abetterapproachprint(nameifnamee1.se)hereyouhavetodefinethee1.seconditiontoo# goodpracticenameandprint(name)age18andnameandprint(userisverified)删除1.ist中的重复元素我们不需要遍历整个IiSt列表来检查重复元素,我们可以简单地使用set()来删除重复元素,代码如下:1st=1.i2,3,4,3,4,4,5,6,3,1,6,7,9,4,0print(1.st)u
5、nique_1.st=1.ist(set(1.st)print(unique_1.st)找到1.ist中重复最多的元素在Python中可以使用ma()函数并传递Iist.CoUnt作为key,即可找出列表1.ist中重复次数最多的元素,代码如下:1st=1,2,3,4,3,4,4,5,6,3,1,6,7,9,4,0most_repeated_item=ma(1.st,key=1.st.count)print(most_repeated_item)1.ist生成式Python中我最喜欢的功能就是1.istcomprehensions,这个特性可以使我们编写非常简洁功能强大的代码,而且这些代码读起
6、来几乎像自然语言一样通俗易懂。举例如下:numbers=1,2,3,4,5,6,7evens=xforXinnumbersifx%2is0odds=yforyinnumbersifynotinevenscities=1.ondon,iDub1.in,Os1.odefvisit(city):print(Weto+city)forcityincities:visit(city)使用*args传递多个参数在Python中我们可以使用*args来向函数传递多个参数,举例如下:defsum_of_squares(n1.,n2)returnn1.*2+n2*2print(sum_of_squares(2,
7、3)#output:13IHHwhateverifyouwanttopass,mu1.tip1.eargstothefunctionasnnumberofargs,so1.etsmakeitdynamic.defsum_of_squares(*args):returnsum(item*2foriteminargs)#nowyoucanpassasmanyparametersasyouwantprint(sum_of_squares(2,3,4)print(sum_of_squares(2,3,4,5,6)在循环时处理下标有时我们在工作中,想要获得循环中元素的下标,一般来说,比较优雅的写法如下:
8、1st=b1.ue,1.ightb1.ue,pink,orange,redforidx,iteminenumerate(1.st):print(id,item)拼接1.ist中多个元素在Python中一般使用JoinO函数来将1.ist中所有元素拼接到一起,当然我们也可以在拼接的时候添加拼接符号,样例如下:names=john,sara,jim,rockprint(,.join(names)将两个字典进行合并在Python中我们可以使用*dictjame,*dict_name2,将多个字典进行合并,样例如下:d1.=v1.:22,v2:33d2=v2h:44,v3:55d3=*d1.,*d2p
9、rint(d3)结果如下:v1.,:22,v2,:44,v3:55使用两个1.ist生成一个字典在Python中,如果我们需要将两个列表中对应的元素组成字典,那么我们可以使用zip功能来方便地做到这一点。代码如下:keys=a,bjcva1.s=1,2,3zipped=dict(zip(keys,va1.s)字典按照va1.ue进行排序在Python中我们使用SOrted()函数来按照字典的va1.ue来对其进行排序.代码如下:v1.:8。,,v2:20,v3:40,v4:20,v5:10,)sorted-d=diet(sorted(d.items(),key=1.ambdaitem:item
10、1.)print(sorted-d)当然我们也可以使用itemgetter()来替代上述Iambda函数,代码如下:fromoperatorimportitemgettersorted-d=diet(sorted(d.items(),key=itemgetter(1.)更进一步,我们也可以通过传递reverse=True对其进行降序排序:sorted-d=diet(sorted(d.items(),key=itemgetter(1),reverse=True)Prettyprint在Python中使用Prim()函数,有时候的输出贼拉拉丑陋,此时我们使用pprint可以使输出更加美观,样例如下
11、:frompprintimportpprintdata=name:johndeo,age:22,address:contry:canada,state:anstateofCanada:),address:streetst.34north12,attr:verified:True,emia1.address:True),)print(data)pprint(data)输出如下:name:johndeo,age,:22,address,:contry,:,canada,state:,anstateofCanadaaddress:streetst.34north12,tattr:verified:T
12、rue,emia1.address:Trueaddress:address:streetst.34north12,contry,:,Canada,tstate:,anstateofCanadaage:22,attr:emia1.address,:True,verified:True),name:,johndeo可见使用pprint函数可以让字典的输出更加容易阅读反转列表Python中通常有两种反转列表的方法:切片或reverse()函数调用.这两种方法都可以反转列表,但需要注意的是内置函数reverse()会更改原始列表,而切片方法会创建一个新列表。但是他们的表现呢?哪种方式更有效?让我们看一下下面的例子:$python-mtimeit-n10000