Python3入门——函数式编程

Posted ---江北

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3入门——函数式编程相关的知识,希望对你有一定的参考价值。

一、高阶函数

  1.可以通过变量指向函数,达到类似别名的效果:

>>> f = abs
>>> f(-10)
10

  2.函数的参数可以是函数,也就是函数可以作为一个入参

def add(x, y, f):
    return f(x) + f(y)

  以下介绍几个高阶函数

  map、reduce

    这两个函数就不赘述了。和scala的功能类似,不过用法不一样,它接收两个参数,第一个是函数f,第二个是Iterable。并将计算结果作为新的Iterator返回,惰性的Iterator通过list便可以计算出结果了:

def f(x):
    return x + 1


r = map(f, [1, 2, 3, 4, 5])
print(list(r))

    reduce入参类似map,但是它的f是接收两个参数,并且需要导包。并将结果作为下一次的输入,表示起来就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
from functools import reduce


def f(x, y):
    return x + y


r = reduce(f, [1, 2, 3, 4, 5])
# 注意这里不需要list包装了,因为返回的不是Iterator
print(r)

    filter

  和scala的filter也是类似了,返回Ture的留下,其它过滤掉。其他的入参和返回值与map相同

def f(x):
    return x % 2 == 0


r = filter(f, [1, 2, 3, 4, 5])
print(list(r))

 

以上是关于Python3入门——函数式编程的主要内容,如果未能解决你的问题,请参考以下文章

Python3函数式编程小结

函数式编程简介-附入门方法

Python3 函数式编程

第三周-第18章节-Python3.5-函数式编程与函数不同

Python3 函数式编程

Java入门与基础(stream函数式编程代码示例)