python 内部函数

1.lambdalambda其实就是一条语句,lambda(x):body。x是lambda函数的参数,参数可以有任意多个(包括可选参数);body是函数体,只能是一个表达式,并且直接返回该表达式的值。

>>>f=lambdax:x+1

>>>f(2)

3

>>>(lambdax,y:x+y)(2,3)

5

2.filterfilter(func,list)接受两个参数:一个函数func和一个列表list,返回一个列表。函数func只能有一个参数。filter的功能:列表中所有元素作为参数传递给函数,返回可以另func返回真的元素的列表

>>>l=['abc','acd','1245','ddad','aaa']

>>>func(s)

...returns.startswith('a')

>>>filter(func,l)

['abc','acd','aaa']

filter为过滤list,并返回list,绑定的函数为一个返回bool值的函数

filter(lambdaitem:item>2,[1,2,3,4])

>>>[3,4]

deffun(x):

returnx>2andx<6

list=[1,2,3,4,5,6,7]

filter(fun,list)

>>>[3,4,5]

3.zipzip函数接受任意多个序列作为参数,将所有序列按相同的索引组合成一个元素是各个序列合并成的tuple的新序列,新的序列的长度以参数中最短的序列为准。另外(*)操作符与zip函数配合可以实现与zip相反的功能,即将合并的序列拆成多个tuple

>>>x=[1,2,3],y=['a','b','c']

>>>zip(x,y)

[(1,'a'),(2,'b'),(3,'c')]

>>>zip(*zip(x,y))

[(1,2,3),('a','b','c')]

4.map为操作list,返回list,绑定的函数为修改list中每一个值的函数

>>>list=[1,2,3]

>>>map(lambdax:x*2,list)

>>>[2,4,6]

5.reduce为逐次操作list里的每项,接收的参数为2个,最后返回的为一个结果

>>>defmyadd(x,y):

>>>returnx+y

>>>sum=reduce(myadd,(1,2,3))

>>>6

相关推荐