Python的高级特性4:函数式编程

函数式编程的核心就是把函数当成对象来进行编程。

有两个常用到的方法:map/reduce,filter,其中map和filter是内建方法,而reduce不是,所以需要import相关模块。

map接收两个参数,第一个参数是函数(处理办法),第二个参数是一个可迭代对象,而map可以把第二个参数的变量映射到函数中一一进行处理,结果以list形式返回。

In [147]: def f(x):
   .....:     return x*x
   .....: 

In [148]: r = map(f,[1,2,3,4,5,6])

In [149]: list(r)
Out[149]: [1, 4, 9, 16, 25, 36]

reduce接收两个参数,第一个参数是函数(处理办法),第二个参数是一个可迭代对象,而reduce可以把第二个参数每一次next方法执行的结果映射到函数中进行处理,然后返回一个计算后的值。其实质就是不断的嵌套把此层函数作为下一层函数的参数直到最后。

In [151]: from functools import reduce

In [152]: def add(x,y):
   .....:     return x+y
   .....: 

In [153]: reduce(add,[1,3,4,7,9])
Out[153]: 24

In [154]: reduce(add,[1])
Out[154]: 1

filter接收两个参数,第一个参数是函数(处理办法),第二个参数是一个可迭代对象,而map可以把第二个参数的变量映射到函数中,根据true/false过滤,结果以list形式返回。

In [156]: def is_odd(n):
   .....:     return n % 2 == 1
   .....: 

In [157]: list(filter(is_odd, (1, 2, 4, 5, 6, 9, 10, 15)))
Out[157]: [1, 5, 9, 15]
时间: 2024-12-20 07:16:42

Python的高级特性4:函数式编程的相关文章

python学习09-函数和函数式编程

函数和函数式编程 函数会向调用者返回一个值, 而实际编程中大偏函数更接近过程,不显示地返回任何东西.把过程看待成函数的语言通常对于"什么都不返回"的函数设定了特殊的类型或者值的名字.这些函数在 c 中默认为"void"的返回类型,意思是没有值返回. 在 python 中, 对应的返回对象类型是none. 简而言之,当没有显式地返回元素或者如果返回 None 时, python 会返回一个 None.那么调用者接收的就是 python 返回的那个对象,且对象的类型仍然

python基础13函数以及函数式编程

主要内容 函数基本语法及特性 参数与局部变 返回值 4.递归 名函数 6.函数式编程介绍 阶函数 8.内置函数 函数基本语法及特性 定义 数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一 个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变 量,y是x的函数.自变量x的取值范围叫做这个函数的定义域. 但编程中的「函数」概念,与数学中的函数是有很 同的 函数是逻辑结构化和过程化的一种编程方法 函数的优点 减少重复代码 使程序变的可扩展 使程序

python之高级特性

掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n <= 99: L.append(n) n = n + 2 取list的前一半的元素,也可以通过循环实现. 但是在Python中,代码不是越多越好,而是越少越好.代码不是越复杂越好,而是越简单越好. 基于这一思想,我们来介绍Python中非常有用的高级特性,1行代码能实现的功能,决不写5行代码.请始终

Python学习总结之五 -- 入门函数式编程

函数式编程 最近对Python的学习有些怠慢,最近的学习态度和学习效率确实很不好,目前这种病况正在好转. 今天,我把之前学过的Python中函数式编程简单总结一下,分享给大家,也欢迎并感谢大家提出意见. 首先,我们学习函数式编程时,需要知道一个概念:高阶函数.那么到底什么是高阶函数呢?把函数作为参数传入,这样的函数就称为高阶函数.而函数式编程就是指这种高度抽象的编程范式. 正文 接下来,我简单介绍以下四种函数的用法:map/reduce   filter   sorted   lambda 在这

python函数高级特性

掌握了Python的数据类型.语句.函数,基本可以编写出很多有用的程序了.但是Python中,代码不是越多越好,而是越少越好.代码不是越复杂越好,而是越简单越好.基于这一思想,我们来介绍python中非常有用的高级特性,1行代码能实现的功能绝不用5行代码,请始终牢记,代码越少,开发效率越高. 切片(Slice) 取一个list或tuple的部分元素是非常常见的操作,比如,一个list如下: L=['Micheal','Sarah','Bob','Jack'] 当我们要取前N个元素,使用循环操作很

python学习第十一天 -- 函数式编程

在介绍函数式编程之前,先介绍几个概念性的东西. 什么是函数式编程? 函数式编程的特点: 1.把计算视为函数而非指令; 2.纯函数式编程:不需要变量,没有副作用,测试简单; 3.支持高阶函数,代码简洁. 什么是高阶函数? 能接收函数做参数的函数,称为高阶函数. 高阶函数的特点: 1.变量可以指向函数 2.函数的参数可以接收变量 3.一个函数可以接收另一个函数作为参数 Python支持的函数式编程? 1.不是纯函数式编程:允许有变量 2.支持高阶函数:函数也可以作为变量传入 3.支持闭包:有了闭包就

Python学习之路:函数式编程介绍&amp;高阶函数

函数式编程:一种抽象程度很高的范式,重要特点:输入是确定的,输出就是确定的: Python对函数式编程,部分支持: 高阶函数: def add(x,y,f):#函数本身传给函数,就是高阶函数 return f(x)+f(y) res = add(3,-6,abs) print(res)

python基本知识(五):函数式编程,装饰器

'''函数式编程: 1) 函数的特性 Features of function 2) 高阶函数 High-Order function 4) 闭包 Closure 5) 匿名函数 Anonymous function 6) 装饰器 Decorator 7)偏函数 Partial function''' # 综述 '''函数的特性: 1. 变量可作函数: x = abs 2. 函数可作变量: abs = 10 3. 可以将一个函数func1作为参数传给func2: def func2(x, y,

Python 进阶(一)函数式编程简介

来自慕课网: 简介: 函数:function ,在入门课程已学 函数式:functional,一种编程范式 函数式编程是一种抽象计算的编程模式,函数≠函数式,好比:计算≠计算机