你好同窗,我们开始吧,这是我们的第4次见面
学习就是要不停地往复,在it这个行业中,不学习就会被淘汰,当然,也不仅仅是学习计算机相关的知识,关于艺术、关于生活等等,都是我们要学习的,不能蒙头死读,多出去看看,一个思维活跃的大脑才是时代需求的,而不只是一个记忆的仓库(我直接度娘就好了记这么多干啥)
好了,开始今天的复习吧,上次讲到生成器,要记得生成器其实只是一种算法,可以把她想象成一个盒子,里面将根据条件产出东西,因此它本身也是可迭代对象,你可以用next调用下一个,也可以直接用一个变量指向它,然后用for循环把里面的东西输出。另外带yield的函数也是可以作为一种生成器。
迭代器,主要分为生成器、集合数据(list、tuple这些)以及带yield的函数。可以用isinstance检查验证
高阶函数,f=abs(),则f(-10)=10. def add(x,y,f)中的f也就是abs()函数可以直接使用。‘
map(f,[1,2,3,4,5,6])把后面的每一个数都放到f所代表的方法里面输出。
reduce(f,[1,2,3,4])就相当于f(f(f(1,2),3),4)
list(filter(一个带判断的方法,[要判断的数]))因为返回到是iterator所以要用list包起来哦
sorted([1,3,3,2,4,5,4],key=排序时遵循的方法,reverse=True这个是反向排序)
return除了返回函数也可返回函数,比如
def....
def sum():
pass
return sum
闭包概念 参量变量都在返回的函数中
返回函数不要一ing用任何循环变量或者后续会发生变化的量,自己返回的是函数!
匿名函数f=lambda x:x*x ,还记得返回函数吗,试试return lambda x:x*x
装饰器,这个也很好用呐多瞅两眼,动态增加功能,返回函数的一个高阶函数。
@log()
def now()
调用时运行now()以及前面的.