python编程之高阶函数

1. 高阶函数定义:

  简单的讲就是把函数的引用作为另一个函数的参数传入,高阶函数是函数式编程的体现,函数式编程就是指这种高度抽象的编程范式。其目的是为了化简代码,增加函数的灵活性。

1.1. 举例:

def sum_num(a, b, f):
    return f(a) + f(b)

result = sum_num(3.2, 1.7, round)  # 内置函数(round)四舍五入后求和 result = 5
result2 = sum_num(-3, 4, abs)  # 内置函数(abs)绝对值后求和 result = 7

2. python常见的内置高阶函数

2.1 map()

  map(func, lst), 将传入函数对指定的序列做映射,将结果组成新的列表Python2/迭代器Python3并返回。

list1 = [1, 2, 3, 4, 5]
def func(x):
    """求平方"""
    return x ** 2

result = map(func, list1)
print(result)  # 
print(list(result))  # [1, 4, 9, 16, 25]

2.2 reduce()

  reduce(func, lst),其中func必须有两个参数。每次func计算的结果继续和序列列的下⼀一个元素做累积计算。

import functools

list1 = [1, 2, 3, 4, 5]
def func(a, b):
    """做累加"""
    return a + b
result = functools.reduce(func, list1) print(result) # 15

2.3 filter()

  filter(func, lst),函数⽤用于过滤序列列, 过滤掉不不符合条件的元素, 返回⼀一个 filter 对象。如果要转换为列列表, 可以使⽤用 list()来转换。

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def func(x):
    """过滤出被2整除数"""
    return x % 2 == 0

result = filter(func, list1)
print(result)  # 
print(list(result))  # [2, 4, 6, 8, 10]

你可能感兴趣的:(python编程之高阶函数)