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

三十个超级实用的Python案例

时间:2023-03-12 07:43:49 科技观察

Python是目前最流行的语言之一,在数据科学、机器学习、Web开发、脚本、自动化等领域被许多人广泛使用。它的简单性和易用性使其如此受欢迎。在本文中,我们将介绍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。字节大小计算以下方法将返回以字节为单位的字符串长度。defbyte_size(string):return(len(string.encode(utf-8)))byte_size(😀)#4byte_size(HelloWorld)#115。重复打印字符串N次下面的代码可以打印某个字符串n次n=2;s="Programming";print(s*n);#ProgrammingProgramming6.首字母大写以下代码段使用title()方法将字符串中每个单词的首字母大写。s="programmingisawesome"print(s.title())#ProgrammingIsAwesome7。分块以下方法使用range()将列表分块为指定大小的较小列表。frommathimportceildefchunk(lst,size):returnlist(map(lambdax:lst[x*size:x*size+size],list(range(0,ceil(len(lst)/size))))chunk([1,2,3,4,5],2)#[[1,2],[3,4],5]8.压缩下面的方法使用fliter()去除列表中的假值(如:False,无,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.合并两个列表转换成a字典以下方法将两个列表转换为字典。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,elementinumerate(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块的一部分,如果没有抛出异常则执行该子句。try:2*3exceptTypeError:print("Anexceptionwasraised")else:print("ThankGod,noexceptionswerraised.")#ThankGod,noexceptionswerraised。24.查找最常见的元素下面的方法返回列表中最常见的元素。defmost_frequent(list):returnmax(set(list),key=list.count)list=[1,2,1,2,3,2,1,4,2]most_frequent(list)25.回文的以下几种方法可以检查给定的字符串是否为回文。该方法首先将字符串转换为小写,然后从中删除非字母数字字符。最后,它将新字符串与反向版本进行比较。defpalindrome(string):fromreimportsubs=sub([W_],,string.lower())返回==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.列表展平下面的方法可以展平列表,类似于JavaScript[].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.Getdefaultvaluesformissingkeys获取key情况下的默认值。d={a:1,b:2}print(d.get(c,3))#3以上是您可能会发现在日常工作中有用的方法的简短列表。它主要基于这个GitHub项目(https://github.com/30-seconds/30_seconds_of_knowledge),您可以在其中找到许多其他有用的代码片段,包括Python和其他编程语言和技术。