实验6:函数式编程

Python实验 飞快学 16浏览

一、实验目的

了解匿名函数 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字。