Python六剑客
归纳函数(reduce):
第一个参数是函数名,第二个参数是sequence(序列,像list,tuple,str,set,dict都可以)
效果是这样的:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
#提前准备一个函数,计算两数之和from functools import reducedef add_z(x,y):return x+y#计算1~10之间数字之和(还是不包含10)r_z=reduce(add_z,range(1,10))print(r_z)print("r_z 的类型:%s"%type(r_z))
结果如下:
六剑客之五:filter
过滤器(filter):
第一个参数是函数名,用于筛选的函数,第二个参数是Iterable(list,tuple,set,dict,str),返回一个filter且filter属于Iterator
#用于过滤掉一切不需要的东西,下面我们以打印1~10之间的奇数为例说明:from collections import Iterable,Iterator#提前准备一个函数,判断是否为奇数def odd_z(x):if x%2==1:return Trueelse:return Falsef=filter(odd_z,range(1,10))print("f 的类型:%s"%type(f))print("f 是Iterator:%s"%isinstance(f,Iterator))try:print(next(f),end='')#f作为Iterator使用print(next(f),end='')except:print("\n结束了")for i in f:#f作为Iterable使用print(i,end='$')
结果如下:
六剑客之六:lambda(匿名函数)
匿名函数(lambda):
只有一行的函数
#我们原来的函数是这样的def square_z(x):return xx#现在我们可以写成下面这样(冒号后面的一切都是对输入的操作,然后lambda x会返回结果):square1=lambda x:xxprint(square1(2))#配合map,filter等lambda能发挥更大作用,一行代码就能打印列表内元素的平方数print(list(map(lambda x:x*x,[1,2,3,4,5])))print(list(filter(lambda x:x<3,[1,2,3,4,5])))
结果如下:

浙公网安备 33010602011771号