笨笨的学PythonDay05

1.高阶函数

原来上学的时候学过高阶函数,是指一个函数可以接收另一个函数作为参数,函数式编程是指这种高度抽象的编程范式,今天主要学习了map() reduce()  fliter()  sorted()  闭包  匿名函数

1.1匿名函数

由于匿名函数可以在其他几个函数中使用,所以先说一下,我们在传入函数时,有些时候不需要明显的去定义一个函数,这时可以使用匿名函数,lambda x: x*x,实际上是定义一个参数为x的函数,x*x为返回值

1.2 map()

map()函数接收两个参数,一个函数,一个是Iterable(序列可以为多个),map将传入的函数依次作用于序列的每一个元素,并把结果作为新的Iterator返回,大多数采用list()将其转化为list

其中使用到了capitalize()方法,str.capitalize()将字符串首字母大写,其余小写

笨笨的学PythonDay05_第1张图片

1.3 reduce()

reduce()函数接收两个参数,一个为函数(该函数必须为两个参数,一个为Iterable,reduce()与map()不同,其把结果继续和序列中下一个元素做累积,例:reduce(f,[1,2,3,4])=f(f(f(1,2),3),4),使用时需要from functools import reduce

其中用到了split()方法,通过指定分隔符对字符串进行切片,str.split('.',1)

笨笨的学PythonDay05_第2张图片
笨笨的学PythonDay05_第3张图片

1.4 filter()

与map()类似,也是接收一个函数,和一个序列,但是其是将传入函数作用于序列每一个元素,然后根据其返回值(函数需要是一个判断),决定保留还是丢弃该元素(True保留),其返回同样也是Iterator

笨笨的学PythonDay05_第4张图片
笨笨的学PythonDay05_第5张图片

1.5 sorted()

排序,返回一个按当前函数排序后的新的序列,sorted(L,key=,reverse=True),一个为序列,一个为key(函数,来指定排序规则),默认为由小到大的顺序,reverse=True为反向排序;字母默认按Ascii值排序,若忽略大小写按字母顺序排序的话,需要将其转化为小写再排序str.lower

笨笨的学PythonDay05_第6张图片
笨笨的学PythonDay05_第7张图片

1.6 闭包

闭包是一种将函数的结果已一个函数的形式返回,返回的函数并未执行,只有去调取的时候才会执行,返回函数中不可以有变化的变量,否则会影响结果

笨笨的学PythonDay05_第8张图片
笨笨的学PythonDay05_第9张图片

你可能感兴趣的:(笨笨的学PythonDay05)