一、匿名函数
-
含义:
以前我们所定义的函数都是有名字的,而匿名函数顾名思义就是没有名字的函数;
匿名函数适用于一些简单的操作,与其他函数配合使用,且匿名函数会自动返回结果; -
格式:
# 定义: lambda 参数1, 参数2: 进行需要的操作 # 定义并调用(极少用) (lambda x, y: x + y)(2, 3) # 后面的括号内传实参;返回:5 # 保存匿名函数的地址后调用(没意义) func = lambda x, y: x+y func(2, 3) # 返回:5 # 与其他函数配合使用(正确用法)
-
举例:
使用max函数,查找字典的最大值;max的参数key是比较大小的依据,不写这个参数就会使用键来比较大小:
score = { 'Tom': 87, 'Jerry': 92, 'Speike': 72 } max_score = max(score, key=lambda k: score[k]) # 使用key对应的value作为比较依据 print(max_score) # 打印:Jerry
还有min,sorted等函数,都可以使用这种方法。
二、高阶函数
-
什么是高阶函数:
高阶函数满足函数式编程的要求,可以接收函数作为参数,或返回值为一个函数。下面的函数都属于高阶函数:
-
map函数:
-
格式:
map(函数, 可迭代对象)
-
作用:
遍历可迭代对象,将元素传入函数中处理,返回一个生成器对象。
比如,遍历一个整数组成的列表,将每一个整数取出,传入float函数中,转换为浮点数。用map就可以很方便的实现。
-
-
filter函数:
-
格式:
filter(返回值为布尔类型的函数, 可迭代对象)
-
作用:
遍历可迭代对象,将元素传入函数中判断,返回一个生成器对象。
-
-
reduce函数:
-
格式:
from functools import reduce reduce(函数, 可迭代对象[,初始值])
-
作用:
先对可迭代对象中的第 1、2 个元素传入函数进行运算(有初始值就用初始值和第1个元素),得到的结果再与第3个数据一起传入函数运算,最后得到一个结果。
-