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

在30秒内学习30个实用的Python代码片段

时间:2023-03-14 15:04:28 科技观察

Python是一种非常流行的语言,在数据科学、机器学习、Web开发、脚本编写和自动化等领域被广泛使用。Python受欢迎的部分原因在于它易于学习。本文将简要介绍30个30秒即可掌握的简短代码片段。1.唯一性以下方法可以检查给定列表中是否有重复项,并使用set()的属性将其从列表中删除。defall_unique(lst):returnlen(lst)==len(set(lst))x=[1,1,2,2,3,2,3,4,5,6]y=[1,2,3,4,5]all_unique(x)#Falseall_unique(y)#True2.Anagrams(同一个字母表不同字母的单词)这个方法可以用来检查两个字符串是否是anagrams。fromcollectionsimportCounterdefanagram(first,second):returnCounter(first)==Counter(second)anagram("abcd3","3acdb")#True3。内存此代码段可用于检查对象的内存使用情况。importsysvariable=30print(sys.getsizeof(variable))#244。bytesize此方法输出字符串的字节大小。defbyte_size(string):return(len(string.encode('utf-8')))byte_size('')#4byte_size('HelloWorld')#115。打印字符串N次该代码段可以不循环使用打印字符串多次。n=2;s="编程";print(s*n);#ProgrammingProgramming6.首字母大写以下代码片段仅使用title()将字符串中每个单词的首字母大写。s="programmingisawesome"print(s.title())#ProgrammingIsAwesome7。列表细分此方法将列表细分为特定大小的列表。defchunk(list,size):return[list[i:i+size]foriinrange(0,len(list),size)]8.从错误值(False,None,0和"")从列表中删除。defcompact(lst):returnlist(filter(bool,lst))compact([0,1,False,2,'',3,'a','s',34])#[1,2,3,'a','s',34]9.计数下面的代码可以用来交换二维数组的排列。array=[['a','b'],['c','d'],['e','f']]transposed=zip(*array)print(transposed)#[('a','c','e'),('b','d','f')]10。链式比较下面的代码可以对各种运算符进行多重比较。a=3print(2belseadd)(a,b))#918。以下方法使用仅包含唯一元素的set()功能来检查列表中的重复值。defhas_duplicates(lst):returnlen(lst)!=len(set(lst))x=[1,2,3,4,5,5]y=[1,2,3,4,5]has_duplicates(x)#Truehas_duplicates(y)#False19。合并字体下面的方法可以合并两种字体。defmerge_two_dicts(a,b):c=a.copy()#makeacopyofac.update(b)#modifykeysandvaluesofwiththeonesfrombreturnca={'x':1,'y':2}b={'y':3,'z':4}print(merge_two_dicts(a,b))#{'y':3,'x':1,'z':4}在Python3.5及升级版本中,步骤代码也可以执行如下方式:defmerge_dictionaries(a,b)return{**a,**b}a={'x':1,'y':2}b={'y':3,'z':4}print(merge_dictionaries(a,b))#{'y':3,'x':1,'z':4}20.将两个列表转换为字体下面的方法可以将两个列表转换为字体。defto_dictionary(keys,values):returndict(zip(keys,values))keys=["a","b","c"]values=[2,3,4]print(to_dictionary(keys,values))#{'a':2,'c':4,'b':3}21.枚举下面的代码段可以使用枚举来获取列表的值和索引。list=["a","b","c","d"]forindex,elementinenumerate(list):print("Value",element,"Index",index,)#('Value','a','Index',0)#('Value','b','Index',1)#('Value','c','Index',2)#('Value','d','Index',3)22.时间成本以下代码计算执行特定代码所需的时间。importtimestart_time=time.time()a=1b=2c=a+bprint(c)#3end_time=time.time()total_time=end_time-start_timeprint("Time:",total_time)#('Time:',1.1205673217773438e-05)23.tryelse语句else语句可以作为try/except语句的一部分,如果没有异常情况,就会执行else语句。try:2*3exceptTypeError:print("Anexceptionwasraised")else:print("ThankGod,noexceptionswerraised.")#ThankGod,noexceptionswerraised.24.Elementswithhighfrequency该方法会输出列表中出现频率高的元素。defmost_frequent(list):returnmax(set(list),key=list.count)list=[1,2,1,2,3,2,1,4,2]most_frequent(list)25.回文(正负readhasthesamestring)以下代码检查给定的字符串是否为回文。首先将字符串转换为小写,然后从中删除非字母字符,最后将字符串的新版本与原始版本进行比较。defpalindrome(string):fromreimportsubs=sub('[\W_]','',string.lower())returns==s[::-1]palindrome('tacocat')#True26。没有if-else语句的计算器下面的代码片段显示了如何编写一个没有if-else条件语句的简单计算器。importoperatoraction={"+":operator.add,"-":operator.sub,"/":operator.truediv,"*":operator.mul,"**":pow}print(action['-'](50,25))#2527。随机排序该算法使用Fisher-Yates算法对新列表中的元素进行随机排序。fromcopyimportdeepcopyfromrandomimportrandintdefshuffle(lst):temp_lst=deepcopy(lst)m=len(temp_lst)while(m):m-=1i=randint(0,m)temp_lst[m],temp_lst[i]=temp_lst[i],temp_lst[m]returntemp_lstfoo=[1,2,3]shuffle(foo)#[2,3,1],foo=[1,2,3]28。展开列表这个方法会类似于[].concat(…arr)这样的列表展开。defspread(arg):ret=[]foriinarg:ifisinstance(i,list):ret.extend(i)else:ret.append(i)返回retspread([1,2,3,[4,5,6],[7],8,9])#[1,2,3,4,5,6,7,8,9]29.交换变量这种方法是在不使用额外变量的情况下快速交换两个变量。defswap(a,b):returnb,aa,b=-1,14swap(a,b)#(14,-1)30。获取缺失部分的默认值获取下面的默认值。d={'a':1,'b':2}print(d.get('c',3))#3本文只是简单介绍一些对我们日常工作有帮助的方法。但内容大多基于GitHub存储库:https://github.com/30-seconds/30_seconds_of_knowledge,其中还包含Python和其他语言和技术的工作代码。