高阶函数:将函数作为参数或返回值的函数
1 filter的基础用法
对于列表(或其他序列类型),如果希望从中筛选出满足某个约束条件的子列表,我们一般的做法是使用一个for循环遍历每个元素然后执行相同约束条件判断,将满足条件的放入新的子列表中。例如,从列表中找出所有偶数子列表,并按对应的先后顺序放入子列表中:
"""
内置高阶函数
filter() 过滤器
"""
list01=[
]
filter()
a = [1, 2, 3, 4, 5]
b = []
for i in a:
if i % 2 == 0:
b.append(i)
a = [1, 2, 3, 4, 5]
def check(i):
return i % 2 == 0
b = list(filter(check, a))
2 map的基础用法
map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法
map() 函数语法:
map(function, iterable, ...)
参数
- function -- 函数
- iterable -- 一个或多个序列
def square(x): # 计算平方数
return x ** 2
map(square, [1, 2, 3, 4, 5]) # 计算列表各个元素的平方
list(map(square, [1, 2, 3, 4, 5])) # 使用 list() 转换为列表
list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) # 使用 lambda 匿名函数