这三个内置函数仍是很是有用的,在工做中用的还很多,顺手,下面一一进行介绍python
一、filter函数
语法:filter(function,iterable)
学习
解释:把迭代器经过function函数进行过滤出想要的数据code
用法:能够设置一个迭代器,而后把相同属性的元素过滤出来,以下所示it
list1 = [1,2,3,4,5,6,7,8,9,10] listTemp = filter(lambda x:x%2==0,list1)
上面的意思是过滤出偶数(即被2整除的数),其中使用了匿名函数lambda,很是简便,固然咱们也能够本身顶一个函数来实现io
另外在python2.*
版本中是直接返回list的,但在python3.*
中是返回一个迭代器function
二、mapclass
语法:map(function,*iterable)
匿名函数
解释:把迭代器(或多个迭代器)经过function函数获得结果lambda
用法:能够设置一个或多个迭代器,而后把相同位置(若是为多个迭代器)的元素经过function函数获得最终结果,以下所示:
#Python学习交流群:778463939 #一个迭代器 list1 = [1,2,3,4,5,6,7,8,9] listTemp = map(lambda x:x*x,list1) #多个迭代器 list2 = [11,12,13] list3 = [21,22,23,24,25] listTemp = map(lambda x,y,z:x+y+z,list1,list2,list3)
多个迭代器的时候,是对后面全部的迭代器进行处理(lambda函数的参数个数必须和后面迭代器的个数一致),这里咱们又使用了匿名函数lambda
同filter同样,在python2.*
版本中是直接返回list的,但在python3.*
中是返回一个迭代器
三、reduce
语法:reduce(function,iterable)
解释:把迭代器经过function进行累积计算
用法:function必须包含俩个参数,第一个参数表示初始值,第二个参数表示迭代器的每一个元素,以下:
list1 = [1,2,3,4,5] listTemp = reduce(lambda x,y:x+y*y,list1) print(listTemp)
经过print能够看出使用的是python3.*
,这里要注意的是,reduce函数在3.*
版本里面已经移动到functools里面
这里咱们再次使用了lambda匿名函数,很是好用,函数式意思是把list1中的元素自乘以后再相加