当前位置: 首页 > 后端技术 > Python

Python基础教程:常用函数

时间:2023-03-26 18:40:07 Python

首先将字符串形式的列表转换为列表使用ast模块中的literal_eval函数将字符串形式的列表转换为Python的基本类型listfromastimportliteral_evalstr_list="[1838,13735,8285,35386]"mylist=literal_eval(str_list)type(mylist)二、filterfilter()函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件的元素组成的新列表。它接收两个参数,第一个是函数,第二个是序列。将序列的每个元素作为参数传递给函数进行判断,然后返回True或False,最后将返回True的元素放入新的列表中。filter(function,iterable)Python3.x返回的结果是迭代器对象,可以使用list()函数将迭代器转化为列表对象,例如>>>ret=filter(lambdax:x%2==0,range(10))>>>print(list(ret))[0,2,4,6,8]三、sorted在对List和Dict进行排序时,Python提供了两种方法:使用List的成员函数sort排序,本地排序,不返回副本,用内置函数sorted排序(2.4开始),返回副本,原输入不变。本质上,list的排序和内置函数sorted的排序几乎是一样的,连参数都一样,主要区别在于list.sort()是对已有的list进行操作,然后可以改变列表;并且内置函数sorted返回一个新列表而不是原始列表。基于的操作返回值是一个排序的iterable,与iterable相同。sorted(iterable,key=None,reverse=False)list_obj.sort(key=None,reverse=False)参数说明:reverse:排序规则,reverse=True表示降序,reverse=False表示升序,默认值为sortinginaskendingorderkey:key参数接受一个函数,该函数只有一个参数,参数为列表项,即key参数用于指定在进行比较之前对每个列表元素调用的函数.key参数接受的函数形式如下,x为列表项的元素,key接受的函数必须返回一个值,用来表示这个元素的权重,sort会进行排序根据权值的大小deff(x):returnlen(x)例如有如下列表,列表项为元组:list=[('d',3),('a',5),('d',1),('c',2),('d',2)]1,按元组的第二个元素对列表排序>>>sorted(list,key=lambdax:x[1])[('d',1),('c',2),('d',2),('d',3),('a',5)]2,当列表排序,先按照元组的第一列排序,然后在第一列的基础上按照元组的第二列排序>>>sorted(list,key=lambdax:(x[0],x[1]))[('a',5),('c',2),('d',1),('d',2),('d',3)]四、strstr(obj)函数将对象obj转换为适合阅读的字符串形式,即str()函数返回的对象的字符串形式:>>>dict={'runoob':'runoob.com','google':'google.com'};>>>str(dict)"{'google':'google.com','runoob':'runoob.com'}"五、printprint()函数用于打印数据1、常规用法定义为如下,print(*objects,sep='',end='\n',file=sys.stdout)参数注释:objects:表示输出对象,输出多个对象时,用,(逗号)分隔sep:用于分隔多个输出结果Objectsymbolend:输出结果末尾自动添加的符号,默认为换行符\nfile:输出结果写入的文件对象,默认为标准输出,即是screen用法的例子,sep、end和file参数使用默认值:>>>name='vic??'>>>age=22>>>print('mynameis',name,',',age,'岁')我的name为vic,22岁2,格式化输出格式化输出定义如下:print(format%args)参数说明:format:stringformat定义args显示的格式,格式字符由%字符定义,其中,%d为用于显示整数,%s用于显示字符串,%f用于显示浮点数%:格式字符串和参数的分隔符args:由待输出对象组成的元组,当输出数据为多个时当args包含多个参数时,需要使用元组形式:>>>print('mynameis%s,%dyearsold'%(name,age))mynameisvic,22岁六,allandanyany(iterable):参数iterable:可迭代对象;如果iterable的任意一个值是非零,非空,True,那么结果就是True如果iterable的所有值都是0,''或者False,那么结果就是Falsedefany(iterable):forelementiniterable:ifelement:returnTruereturnFalseall(iterable)函数,如果iterable的任意值是0、空、False,则结果为False。仅当iterable的所有值都为非零、非''或True时结果为Truedefany(iterable):forelementiniterable:ifnotelement:returnFalsereturnTrue比如创建一个列表[2,3,4],测试all()和any()函数:>>>nl=list(range(2,5))>>>print(all(n>=2forninnl))True>>>print(all(n>=3forninnl))False>>>print(any(n>=3forninnl))True七、mapmap()是内置的高阶函数Python,它接收一个函数func和一个列表,通过依次对列表的每个元素应用函数func,得到一个新的列表并返回。map(func,seq1[,seq2,…])1、当只有一个seq时,当只有一个seq时,对seq的每个元素应用函数func,得到一个新的seqmap(lambdax:x*x,[1,2,3,4,5])#[1,4,9,10,25]2,当有多个seq时当有多个seq时,map可以对每个seq并行执行func,也就是说func有多个参数用于接收对应序列的每个元素>>>t=map(lambdax,y:(x**y,x+y),[1,2,3],[1,2,4])>>>foriint:...print(i)...(1,2)(4,4)(81,7)八、reducereduce()函数用于迭代计算,该函数对一个iterable中的所有数据进行如下操作:使用传递给reduce的函数function(有两个参数)对iterable中的第一个和第二个元素进行操作,然后将得到的结果与iterable进行比较。第三个元素用function函数操作,最后得到一个结果。reduce(function,iterable[,initializer])参数注释:function--函数,有两个参数iterable--可迭代对象initializer--可选,初始参数比如initializer是传递给函数参数的第一个参数,第二个参数取自可迭代的。>>>减少(lambdax,y:x+y,[1,2,3,4],1)11>>>reduce(lambdax,y:x+y,[1,2,3,4])10reduce()函数的计算过程如下图所示:9.zipzip()函数用于将一个可迭代对象作为参数,将对象中对应的元素打包成元组,然后返回这些元组列表组成的元组。如果每个迭代器的元素个数不一致,则返回列表的长度与最短对象相同,可以使用*运算符将元组解压成列表。>>>a=[1,2,3]>>>b=[4,5,6]>>>c=[4,5,6,7,8]>>>zipped=zip(a,b)#打包成元组列表[(1,4),(2,5),(3,6)]>>>zip(a,c)#元素个数与最短列表相同[(1,4),(2,5),(3,6)]>>>zip(*zipped)#与zip相反,*zipped可以理解为解压,返回一个二维矩阵[(1,2,3),(4,5,6)]