专业编程基础技术教程

网站首页 > 基础教程 正文

Python函数式编程之map/reduce/filter进阶

ccvgpt 2024-11-02 11:17:34 基础教程 6 ℃

说明

本文重点在于示例代码,在熟悉基本概念(map/reduce/filter/lambda)的基础上阅读最好

背景

函数式编程是一种编程范式,我们常见的是命令式编程,首先大概了解下概念:

Python函数式编程之map/reduce/filter进阶

命令式:冯诺依曼机的序列

函数式:基于λ演算

函数式编程一般有如下特点:

  • Referential transparency

  • No Side Effect

  • Currying

  • Closure

  • Higher-order function

  • Lazy evaluation

  • Lambda

进入正题,主要看看python函数式编程,几个高阶函数map/reduce/filter的使用

定义(python2)

sequence是一种泛型,包括list,tuple,string

map(function, sequence[, sequence, …]) -> list

1. map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回

reduce(function, sequence[, initial]) -> value

1. 把一个函数作用在一个序列上,reduce把结果继续和序列的下一个元素做累积计算

2. function接受两个参数

3. 返回值类型取决于function return

filter(function or None, sequence) -> list, tuple, or string

1. 如果是None,返回是True的元素

2. 返回和sequence相同的类型

示例

map/reduce/filter其实很简单,要熟练掌握,最好的办法就是code,示例代码包括map/reduce/filter使用的各个方面,重点地方已注释,认真看完code,一定可以掌握map/reduce/filter的

foo5涉及较多概念,如果理解上有困惑,可以先去看看这些概念,当然foo5和map/reduce/filter关系不大,可以暂时不看

最近发表
标签列表