Python攻克之路-内置函数部分介绍
内置函数
常用的内置函数
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