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

分享17个有用的Python技巧!

时间:2023-03-13 05:03:12 科技观察

文大家好,我是Python人工智能技术在这篇文章中,我们将讨论最常用的pythontricks。这些小技巧大多是我在日常工作中使用的简单技巧,觉得好的东西应该拿出来分享给大家。事不宜迟,让我们开始吧!:)技巧总结1.处理来自用户的多个输入有时我们需要从用户那里获得多个输入,以便使用循环或任何迭代。一般写法如下:#badpracticecoden1=input("enteranumber:")n2=input("enteranumber:")n2=input("enteranumber:")print(n1,n2,n3)但更好的方法如下:#goodpractice1,n2,n3=input("enteranumber:").split()print(n1,n2,n3)2.处理多个条件语句如果我们需要检查代码中的多个条件语句,我们可以使用all()或any()函数来实现我们的目的。通常,当我们有多个and条件时使用all(),当我们有多个or条件时使用any()。这样的用法会让我们的代码更加清晰易读,让我们在调试的时候不会遇到麻烦。all()的一般示例如下:size="lg"color="blue"price=50#不好的做法ifsize=="lg"andcolor=="blue"andprice<100:print("Yes,Iwanttobuttheproduct.")更好的方法如下:#goodpracticeconditions=[size=="lg",color=="blue",price<100,]ifall(conditions):print(“是的,我只想要产品。”)any()的一般示例如下:#badpracticesize="lg"color="blue"price=50ifsize=="lg"orcolor=="blue"orprice<100:print("Yes,Iwanttobuttheproduct.")更好地处理如下:#goodpracticeconditions=[size=="lg",color=="blue",price<100,]ifany(conditions):print("Yes,Iwanttobuttheproduct.")3.判断一个数的奇偶性这个实现起来很简单,我们拿到用户的输入,转换成整数,校验对数2的余数运算,如果余数为零,则为偶数。print('odd'ifint(input('Enteranumber:'))%2else'even')4.交换变量如果我们需要在Python中交换变量的值,我们不需要定义临时的变量来操作。我们一般使用如下代码来实现变量交换:v1=100v2=200#badpracticetemp=v1v1=v2v2=temp但更好的处理方式如下:v1=100v2=200#goodpracticev1,v2=v2,v15,判断string是否为回文,最简单的字符串反转方式是[::-1],代码如下:print("JohnDeo"[::-1])6.反转字符串判断在Python中判断一个字符串是否为回文,只需要使用语句string.find(string[::-1])==0,示例代码如下:v1="madam"#isapalindromestringv2="master"#不是回文字符串print(v1.find(v1[::-1])==0)#Trueprint(v1.find(v2[::-1])==0)#False7.大多数情况下尽量使用Inlineif语句这里,条件后面只有一条语句,所以使用Inlineif语句可以帮助我们写出更干净的代码。比如一般的写法是:name="ali"age=22#badpracticesifname:print(name)ifnameandage>18:print("userisverified")但更好的处理方式是如如下:#更好的方法print(nameifnameelse"")"""这里你也必须定义else条件"""#goodpracticenameandprint(name)age>18andnameandprint("userisverified")8、删除列表中的重复元素我们不需要遍历整个列表来检查重复元素,我们可以简单地使用set()来删除重复元素,代码如下:lst=[1,2,3,4,3,4,4,5,6,3,1,6,7,9,4,0]print(lst)unique_lst=list(set(lst))print(unique_lst)9。查找列表中重复次数最多的元素,可以在Python中使用max()函数,将list.count作为key,就可以找到列表list中重复次数最多的元素,代码如下:lst=[1,2,3,4,3,4,4,5,6,3,1,6,7,9,4,0]most_repeated_item=max(lst,key=lst.count)print(most_repeated_item)10.我的列表生成Python中最喜欢的函数是列表理解。此功能使我们能够编写非常简洁和强大的代码,几乎与自然语言一样易于阅读。例如:numbers=[1,2,3,4,5,6,7]evens=[xforxinnumbersifx%2is0]odds=[yforyinnumbersifynotinevens]cities=['London','Dublin','Oslo']defvisit(city):print("Welcometo"+city)forcityincities:visit(city)11.在Python中使用*args传递多个参数我们可以使用*args将多个参数传递给函数,例如:defsum_of_squares(n1,n2)returnn1**2+n2**2print(sum_of_squares(2,3))#output:13"""whateverif你想将多个参数作为n个参数传递给函数。所以让我们让它动态化。"""defsum_of_squares(*args):returnsum([item**2foriteminargs])#现在你可以passasmanyparametersasyouwantprint(sum_of_squares(2,3,4))print(sum_of_squares(2,3,4,5,6))12.循环时处理下标有时我们在工作中想要得到一般来说,循环中元素的下标更优雅的写法如下:lst=["blue","lightblue","pink","orange","red"]foridx,iteminenumerate(lst):print(idx,item)13.加入列表中的多个元素。在Python中,Join()函数通常用于将列表中的所有元素连接在一起。当然我们也可以在拼接的时候加入拼接符号。例子如下:names=["john","sara","jim","rock"]print(",".join(names))14。合并两个词典另外,搜索公众号topPythonbackend,回复“进阶”即可获得惊喜礼包。在Python中,我们可以使用{**dict_name,**dict_name2,…}将多个词典合并Merge,示例如下:d1={"v1":22,"v2":33}d2={"v2":44,"v3":55}d3={**d1,**d2}print(d3)结果如下:{'v1':22,'v2':44,'v3':55}15使用两个列表生成字典在Python中,如果我们需要将两个列表中对应的元素组成一个字典,那么我们可以使用zip函数来方便地完成。代码如下:keys=['a','b','c']vals=[1,2,3]zipped=dict(zip(keys,vals))16.Python中字典是按值排序的我们使用sorted()函数根据字典的值对字典进行排序。代码如下:d={"v1":80,"v2":20,"v3":40,"v4":20,"v5":10,}sorted_d=dict(sorted(d.items(),key=lambdaitem:item[1]))print(sorted_d)当然我们也可以用itemgetter()来代替上面的lambda函数,代码如下:fromoperatorimportitemgettersorted_d=dict(sorted(d.items(),key=itemgetter(1)))更进一步,我们还可以通过传递reverse=True对其进行降序排序:sorted_d=dict(sorted(d.items(),key=itemgetter(1),reverse=True))17.prettyprint使用Python中的Print()函数,有时输出的内容很难看。这时候我们可以使用pprint来让输出更加美观。例子如下:frompprintimportpprintdata={"name":"johndeo","age":"22","address":{"contry":"canada","state":"anstateof加拿大:)","address":"streetst.34north12"},"attr":{"verified":True,"emimaladdress":True},}print(data)pprint(data)输出如下:{'name':'johndeo','age':'22','address':{'contry':'canada','state':'加拿大的一个州:)','address':'street英石。34north12'},'attr':{'verified':True,'emiladdress':True}}{'address':{'address':'streetst.34north12','contry':'canada','state':'加拿大的一个州:??)'},'age':'22','attr':{'emiladdress':True,'verified':True},'name':'johndeo'}可以看出使用pprint函数可以让字典的输出更易读