内置函数
常用的内置函数
1.filter(function,sequence)
描述:filter是一个函数,有两个参数,第一个参数是函数,第二个参数是序列,filter会遍历序列的元素,作为参数传进去,str = ['a','b','c','d']有四个元素,s不等于元素,就返回,等于就直接过滤掉.
In [33]: str = ['a','b','c','d']
In [34]: def fun1(s):
...: if s != 'a': ##判断
...: return s
...: ret = filter(fun1,str)
...:
In [35]: ret
Out[35]: <filter at 0x7f27bf7e8518>
#存的是过滤器对象,python2得到的结果是一个元组('b','c','d'),在python3时,,也是一个迭代器对象,迭代器是把值存到
一个容器,不使用不会占用太大的空间,取时可以取一个使用一个
In [37]: list(ret) #把它转换成列表
In [42]: str = ['e','f']
2.map(function,sequence)
In [43]: def fun2(s):
...: return s + "reid"
...: ret = map(fun2,str) ##filter与map区别,filter需要条件if ret = map(func2,str)
In [44]: ret
Out[44]: <map at 0x7f27bf8412e8>
In [46]: list(ret)
Out[46]: ['ereid', 'freid']
注:对sequence中的item依次执行function(item),将执行结果组成一个map object迭代器返回.
map也支持多个sequence,这就要求function也支持相应的数量参数输入
In [47]: def add(y,z):
...: return y+z
...: print(list(map(add,range(10),range(10))))
...:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
3.reduce(function,sequnce,starting_value)
In [49]: from functools import reduce ##调用模块
In [50]: def add1(g,k):
...: return g + k
...: print(reduce(add1, range(1,10))) #从1到9相加,叠加的结果
...:
45
注:对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始始值调用
4.lambda
普通函数:
In [55]: def add(a,b):
...: return a + b
...: add(3,4)
...:
Out[55]: 7
匿名函数:lambda后面是参数,冒号后面直接使用代码块
In [56]: add = lambda c,d : c + d
In [57]: add(4,5)
Out[57]: 9