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

12个用于日常编程的杀手级Python代码段_0

时间:2023-03-12 22:54:09 科技观察

1。正则表达式正则表达式是Python中用于匹配模式、搜索和替换字符串、验证字符串等的最佳技术。现在,您无需为此类工作使用循环和列表。查看以下用于验证电子邮件格式的正则表达式代码示例:#RegularExpressionCheckMailimportredefCheck_Mail(email):pattern=re.compile(r'([A-Za-z0-9]+[.-_])*[A-Za-z0-9]+@[A-Za-z0-9-]+(\.[A-Z|a-z]{2,})+')如果re.fullmatch(pattern,email):打印(“有效”)否则:打印(“无效”)Check_Mail(“codedev101@gmail.com”)#validCheck_Mail(“codedev101-haider@uni.edu”)#InvalidCheck_Mail(“code-101-work@my.net")#Invalid2,ProSlicing这个简单的代码片段将帮助您像专家一样对列表进行切片。查看下面的示例代码:#ProSlicing#list[start:end:step]mylist=[1,2,3,5,5,6,7,8,9,12]mail="codedev-medium@example.com"print(mylist[4:-3])#567print(mail[8:14])#medium3,SwapwithoutTemp你使用Temp变量来交换两个数据,不是在Python中你不需要使用它?在此代码片段中,我将与您分享如何在不使用temp的情况下交换两个数据变量。查看下面的代码:#SwapwithoutTempi=134j=431[i,j]=[j,i]print(i)#431print(j)#1344,F-string的魔法我们可以使用format()方法或“%”方法来格式化字符串中的变量。此代码将向您介绍F弦,它比其他格式好得多。查看下面的示例代码:#Magicoff-String#NormalMethodname="Codedev"lang="Python"data="{}iswritingarticleon{}".format(name,lang)print(data)#ProMethodwithf-stringdata=f"{name}iswritingarticleon{lang}"print(data5,getindex现在您不再需要循环查找特定元素的索引。您可以使用index()方法列出要执行的操作。查看下面的代码:#GetIndexx=[10,20,30,40,50]print(x.index(10))#0print(x.index(30))#4print(x.index(50))#26.根据另一个列表对列表进行排序此代码段将向您展示如何根据另一个列表对列表进行排序。当您需要根据所需位置进行排序时,此代码段很方便。#SortListbasedon另一个Listlist1=["a","b","c","d","e","f","g","h","i","j","k","l","m"]list2=[0,1,1,1,2,2,0,1,1,3,4]C=[xfor_,xinsorted(zip(list2,list1),key=lambdapair:pair[0])]print(C)#['a','g','b','c','d','h','i','e','f','j','k']7.反向字典现在你不需要循环来反转任何字典。此代码段将在第二次尝试此代码段时反转字典。#翻转字典defInvert_Dictionary(data):return{value:keyforkey,valueindata.items()}data={"A":1,"B":2,"C":3}invert=Invert_Dictionary(data)print(invert)#{1:'A',2:'B',3:'C'}8.多线程多线程将帮助您同时并行运行Python函数。假设您想同时执行5个函数,而不是等待每个函数完成。查看下面的代码片段:#Multi-threadingimportthreadingdeffunc(num):forxinrange(num):print(x)if__name__=="__main__":t1=threading.Thread(target=func,args=(10,))t2=threading.Thread(target=func,args=(20,))t1.start()t2.start()t1.join()t2.join()9.列表中出现次数最多的元素该片段代码将简单地计算列表中出现次数最多的元素。我已经展示了两种方法来做到这一点。看看下面:#元素在Listfromcollections中出现最多importCountermylst=["a","a","b","c","a","b","b","c","d","a"]#方法1defoccur_most1(mylst):returnmax(set(mylst),key=mylst.count)print(occur_most1(mylst))#a#方法2#比方法1defoccur_most2(mylst)快得多:data=Counter(mylst)returndata.most_common(1)[0][0]print(occur_most2(mylst))#a10。分割线有一个逐行格式的原始文本,想把它分成几行。此代码片段将在一秒钟内解决您的问题。#分割线data1="""HellotoPython"""data2="""ProgrammingLangauges"""print(data1.split("\n"))#['Helloto','Python']print(data2.split("\n"))#['Programming','Langauges']11.将列表映射到字典此代码片段将帮助您将任意两个列表转换为字典格式。要了解它是如何工作的,请查看下面的代码:#将列表映射到字典中defConvert_to_Dict(k,v):returndict(zip(k,v))k=["a","b","c","d","e"]v=[1,2,3,4,5]print(Convert_to_Dict(k,v))#{'a':1,'b':2,'c':3,'d':4,'e':5}12.解析电子表格现在您不需要Pandas或任何其他外部Python包来解析电子表格。Python有一个内置的CSV模块,这段代码将向您展示如何使用它。#解析Spreadsheetimportcsv#Readingwithopen("test.csv","r")asfile:csv_reader=csv.reader(file)forrowincsv_reader:print(row)file.close()#Writingheader=["ID","Languages"]csv_data=[234,"Python",344,"JavaScript",567,"Dart"]withopen("test2.csv",'w',newline="")作为文件:csv_writer=csv.writer(文件)csv_writer.writerow(标题)csv_writer.writerows(csv_data)