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

分享值得你学习的PythonTips

时间:2023-03-13 19:08:06 科技观察

本文介绍了20个值得记住的Python技巧,可以提高你的编程技能,为你节省大量时间。下面的大部分技巧在普通的编程过程中都是非常有用的。1stringreverse使用切片反转字符串。str1="qwert"rev_str1=str1[::-1]#output#trewq2makefirstletteruppercase将字符串转换为首字母大写。这是使用title()方法完成的。str1="thisisabook"print(str1.title())#ThisIsABook3查找字符串中的唯一元素以下代码可用于查找字符串中的所有唯一元素。str1="aabbccccdddd"setset1=set(str1)new_str=''.join(set1)print(new_str)4重复打印字符串或列表在下面的代码中,使用(*)表示字符串或列表。多次复制一个字符串或列表。i=4str1="abcd"list1=[1,2]print(str1*i)#abcdabcdabcdabcdprint(list1*i)#[1,2,1,2,1,2,1,2]5列表理解listComprehensions给我们一个很好的方法来创建基于其他列表的列表。以下代码通过将旧列表的每个元素乘以2创建一个新列表。list1=[1,2,3]new_list1=[2*iforiinlist1]#[2,4,6]6交换变量而不使用另一个变量,实现变量互换。x=1y=2x,yy=y,xprint(x)#2print(y)#17将字符串拆分为子串列表我们使用string类中的.split()方法将字符串拆分为子串列表字符串,可选地传递分隔符作为参数进行分割。str1="Thisisabook"str2="test/str2"print(str1.split())#['This','is','a','book']print(str2.split('/'))#['test','str2']8将字符串列表合并为单个字符串join()将作为参数传递的字符串列表合并为单个字符串。在这种情况下,我们用逗号分隔符分隔它们。list_str=['This','is','a','book']print(','.join(list_str))#This,is,a,book9检查回文字符串我们已经讨论过如何反转字符串,所以回文字符串在Python中是非常容易判断的。str1="qqaabb"ifstr1==str1[::-1]:print("Palindrome")else:print("Not")#Not10列表中的元素统计使用PythonCounter类。Python计数器跟踪容器中每个元素的频率,Counter()返回一个字典,其中元素作为键,频率作为值。还可以使用most_common()函数获取列表中出现频率最高的元素。fromcollectionsimportCounterlist1=['a','b','a','c','c','c']count=Counter(list1)print(count)print(count['b'])print(count.most_common(1))11判断两个字符串是否为异形异形异形字是将不同单词或短语的字母重新排列形成的单词或短语。如果两个字符串的Counter对象相等,则它们是二连词。s1,s2,s3="acbde","abced","abcda"c1,c2,c3=Counter(s1),Counter(s2),Counter(s3)ifc1==c2:print('1和2不同前言')ifc1==c3:print('1和3是异类词')12使用try-except-else块try/except是Python中的异常处理模块,加上else语句,try块中不会有如果抛出异常则运行。a,b=1,0try:print(a/b)#当b为0时,触发异常exceptZeroDivisionError:print("除数为0")else:print("没有异常")finally:print("本段的总数是会执行")13通过枚举获取索引/值对可以使用下面的脚本来遍历列表中的值及其索引。list1=['a','b','c','d','e']foridx,valinenumerate(list1):print('{0}:{1}'.format(idx,val))#0:a#1:b#2:c#3:d#4:e14获取对象的内存使用信息下面的脚本可以用来查看对象的内存使用信息。importsysnum=21print(sys.getsizeof(num))15合并两个字典在Python2中,使用update()合并两个字典,Python3使它更容易。在下面的脚本中,合并了两个字典。在交集的情况下,使用第二个字典中的值。dic1={'app':9,'banana':6}dic2={'banana':4,'orange':8}com_dict={**dic1,**dic2}#{'apple':9,'banana':4,'orange':8}16计算代码执行所需的时间下面的代码使用库函数来计算执行代码所需的毫秒数。importtimes_time=time.time()a,b=1,2c=a+be_time=time.time()time_taken_in_micro=(e_time-stime)*(10**6)print("程序运行的毫秒数:{0}ms".format(time_taken_in_micro))17扩展列表列表有时不知道列表的嵌套深度,只想将所有元素放在一个普通列表中。数据可以通过以下方法获取:fromiteration_utilitiesimportdeepflatten#如果嵌套list的深度只有1层deflatten(l):return[itemforsublistinlforiteminsublist]l=[[1,2,3],[3]]print(flatten(l))#[1,2,3,3]#如果不知道列表的嵌套深度l=[[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]]print(list(deepflatten(l,depth=3)))#[1,2,3,4,5,6,7,8,9,10]18randomsamplingfromthelist从给定列表中生成n个随机样本。importrandomlist1=['a','b','c','d','e']ns=2samples=random.sample(list1,ns)print(samples)#['a','c']或使用秘密库生成随机样本。以下代码仅适用于Python3.x。importsecretss_rand=secrets.SystemRanom()list1=['a','b','c','d','e']ns=2samples=s_rand.sample(list1,ns)print(samples)#['c','']19数字列表下面的代码将整数转换为数字列表。nums=123456#使用mapdigit_list=list(map(int,str(nums)))print(digit_list)#[1,2,3,4,5,6]#使用list表达式digit_list=[int(x)forxinstr(nums)]print(digit_list)#[1,2,3,4,5,6]20唯一性检查以下函数检查列表中的元素是否唯一。defunique(l):iflen(l)==len(set(l)):print("所有元素都是唯一的")else:print("有重复项")unique([1,2,3,4])#所有元素唯一unique([1,1,3,4])#有重复