一、实验目的
了解匿名函数 lambda 的定义和使用;了解高阶函数;掌握2个高阶函数 map 和 filter 的使用,了解归约计算函数 reduce。
二、实验内容
高阶函数:在函数式编程中,可以将函数当作变量⼀样⾃由使⽤。⼀个函数接收另⼀个函数作为参数,这种函数称之为⾼阶函数(Higher-order Functions)。
内置函数 max 就是高阶函数。 编写max函数作为高阶函数的示例。
map函数的功能是映射函数到序列。使用map函数获得列表中各元素的平方,生成新的列表。
三、实验要点
max 最简单的用法是
L = [2, 3, -4, 1] print(max(L)) # 3
max 的标准是绝对值最大,则可以这么写:
L = [2, 3, -4, 1] print(max(L, key=abs)) # -4
map函数:映射函数到序列
不使用map函数
L = [] for i in range(1, 10): L.append(i*i) print(L) # [1, 4, 9, 16, 25, 36, 49, 64, 81]
使用map函数映射列表来获得新的列表。
def f(x): return x**2 list(map(f, range(1, 10)))
使用过滤函数 filter,从自然数中选择其中的奇数。
def is_odd(n): return n % 2 == 1 L = list( filter(is_odd, range(10)) )
四、实验小结
不少于50字。