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

Python初学者的20个重要技能

时间:2023-03-14 09:39:53 科技观察

Python是世界上使用最广泛的编程语言之一,原因有很多:易于理解、用途广泛、包含大量模块和库等等。其中,简单性和高可读性使得Python在所有软件中非常突出。作为一名数据科学家,我每天都使用Python,这是我工作的重要组成部分。在这个过程中,我学会了一些惊人的技巧。1.交换价值数字交换通常涉及存储在临时变量中的价值。但是,我们可以在不使用瞬态变量的情况下通过使用Python技巧中的一行代码来实现这一点。"""valueswapping"""a,b=5,10print(a,b)a,bb=b,aprint(a,b)output10,52。列表中所有项目的字符串必须交换为字符串列表进行卷积时,您可以使用更新每个项目的for循环连续执行此操作。但是,这样做很麻烦,尤其是在列表很长的情况下。在Python中,字符串是不可变的。因此,在每两次拼接中,左右字符串都应该被复制到一个新字符串中。更简洁的解决方案是使用join()函数,如下所示:p=["Python","is","a","popular","language"]print("".join(p))outputPython是一种流行语言列表中最常见的元素决定了列表中出现频率最高的值。如果不同的项目以相同的方式出现,则打印其中一个。创建一组列表以删除冗余值。所以求出集合中每一项的最大事件数,然后考虑最大的。list1=[0,1,2,3,3,2,3,1,4,5,4]print(max(set(list1),key=list1.count))output34。测试两个字符串是否是sareanagramsdefanagram(string_1,string_2):"""Testifthestringsareanagrams.string_1:stringstring_2:stringreturns:boolean"""解决上面的问题,判断两个字符串是否是sareanagrams。给定两个字符串string_1和string_2,测试这两个字符串是否互为同形异义词。fromcollectionsimportCounterdefanagram(string_1,string_2):returnCounter(string_1)==Counter(string_2)anagram('pqrs','rqsp')Trueanagram('pqrs','rqqs')False来源:unsplash5。反转字符串切片是Python中的一个得心应手的技巧,它也可以用来反转字符串中的项目顺序。#withslicingstr="PQRST"reverse_str=str[::-1]print(reverse_str)OutputTSRQP6。ReversedList使用此方法创建列表的副本,并且列表不按顺序排序。要创建副本,需要更多空间来容纳所有现有元素。#usingslicingapproachdefReverse(lst):lstlst1=lst[::-1]returnlst1lst=[5,6,7,8,9,10]print(Reverse(lst))output[10,9,8,7,6,5]7。转置矩阵转置矩阵意味着将列转换为行,反之亦然。使用Python,可以将以下代码与zip函数结合使用*工具解压缩矩阵的转置列表。mat=[(5,6,7),(8,9,10),(11,12,13)??,(14,15,16)]forrowinmat:print(row)print("\n")t_mat=zip(*mat)forrowint_mat:print(row)output(5,6,7)(8,9,10)(11,12,13)??(14,15,16)(5,8,11,14)(6,9,12,15)(7,10,13,16)8.链式比较在编程中,测试两个以上的条件是很正常的。假设您需要测试以下内容:pa<=6)print(3==a>2)outputTrueFalseTrueTrueTrue9。'get'字典这里是访问Python字典中键值的传统方式:dict={"P":1,"Q":2}print(dict["P"])print(dict["R"])代码的第三行产生一个关键错误:Traceback(mostrecentcalllast):File".\dict.py",line3,inprint(dict["R"])KeyError:'R'来防止这个出现,您可以使用get()函数。当在字典中可用时,此技巧可以为特定键提供值。如果不可用,则不返回任何值(如果get()只接受一个参数)。dict={"P":1,"Q":2}print(dict.get("P"))print(dict.get("R"))print(dict.get("R","不可用!"))output1None不可用!10.按值对字典进行排序排序在日常编程中总是很有用的。Python中的字典被广泛应用于许多应用程序中,从竞赛领域到开发人员领域。构造字典并按字母顺序显示所有键,按值列出按字母顺序排序的键和值。defdict():keyval={}#Initializingthevaluekeyval[3]=48keyval[2]=6keyval[5]=10keyval[1]=22keyval[6]=15keyval[4]=245print("Task3:-\nKeysandValuesorted","inalphabeticalorderbythevalue")#Rememberthiswouldarrangeinphabeticalsequence#Convertittofloattomathematicalpurposesprint(sorted(keyval.elements(),key=lambdak_val:(k_val[1],k_val[0])))defmain():dict()if__name__=="__main__":main()输出[(2,6),(5,10),(6,15),(1,22),(3,48),(4,245)]来源:unsplash11。列表推导由不同的迭代构建对于新列表,使用列表推导。由于列表理解生成列表,因此它们包含将对每个元素进行评估的表达式的括号。计算列表更简单,因为Python解释器旨在检测循环中的循环模式。#Multiplyingeachiteminthelistwith3list1=[2,4,6,8]list2=[3*pforpinlist1]print(list2)[6,12,18,24]12.Timespentexecutingpartoftheplan执行计划的一部分所花费的时间。计算时间有助于优化Python脚本以更好地执行。importtimeinitial_Time=time.time()#Programtotestfollowsx,y=5,6z=x+y#Programtotestendingending_Time=time.time()Time_lapsed_in_Micro_sec=(ending_Time-initial_Time)*(10**6)print("Timelapsedinmicro_seconds:{0}ms").format(Time_lapsed_in_Micro_sec)13.合并字典这是Python中的一个重要技巧:使用一个表达式合并两个字典并将结果存储在第三个字典中。单个表达式为**,不影响其他两个字典。**表示该参数是一个字典。使用**是一种快捷方式,因此可以使用字典将多个参数直接传递给函数。使用这个函数,先把第一个字典的所有元素传给第三个字典,再把第二个字典传给第三个字典。这将替换第一个字典中的重复键dic1={'men':6,'boy':5}dic2={'boy':3,'girl':5}merged_dic={**dic1,**dic2}print(merged_dic)Output{'men':6,'boy':3,'girl':5}14.数字化下面是使用map()函数、列表推导和更简单的数字化方法编写的代码:number=2468#withmapdigit_list=list(map(int,str(number)))print(digit_list)[2,4,6,8]#withlistcomprehensiondigit_list=[int(a)forainstr(number)]print(digit_list)[2,4,6,8]#Evensimplerapproachdigit_list=list(str(number))print(digit_list)[2,4,6,8]15.测试唯一性有些列表操作需要测试列表中的所有项目是否完全不同。这通常发生在尝试对列表执行集合操作时,而这个特定的实用程序对此至关重要。defuniq(list):iflen(list)==len(set(list)):print("totalitemsareunique")else:print("Listincludesduplicateitem")uniq([0,2,4,6])totalitemsareuniqueuniq([1,3,3,5])列表包括重复的项目16。使用枚举在循环中使用枚举器快速找到索引:sample_list=[4,5,6]forj,iteminenumerate(sample_list):print(j,':',item)Output0:41:52:617。在一行中计算任意数字的阶乘这个技巧可以帮助您在一行中找到给定数字的阶乘:importfunctoolsfact=(lambdai:functools.reduce(int.__mul__,range(1,i+1),1)(4)print(fact)Output2418.返回一个函数的几个元素很多计算机语言不提供这个功能。但是对于Python来说,函数产生几个元素。请参阅下面的示例以了解其工作原理:#functionreturningseveralelements.defa():return5,6,7,8#Callingtheabovefunction.w,x,y,z=a()print(w,x,y,z)Output567819。添加一个真正的Pythonswitchcase语句下面是一个使用字典复制case转换结构的脚本:defaswitch(a):returnaswitch._system_dic.get(a,None)aswitch._system_dic={'mangoes':4,'apples':6,'oranges':8}print(aswitch('default'))print(aswitch('oranges'))OutputNone820。使用splat运算符解包函数参数splat运算符提供了一种解包参数列表的方法有效方法:deftest(a,b,c):print(p,q,r)test_Dic={'a':4,'b':5,'c':6}test_List=[10,11,12]test(*test_Dic)test(**test_Dic)test(*test_List)#1->pqr#2->456#3->101112掌握这些技巧可以快速高效地完成Python任务。