2016.4.12Python迭代器,函数式编程,map/reduce高阶函数

Python中的函数式编程:使用map、filter和reduce提升代码表达力 函数式编程是一种编程范式,通过将计算过程视为数学函数的组合,强调不可变性和无副作用,旨在提升代码的可读性、可维护性和表达力。Python作为一门多范式编程语言,充分支持函数式编程特性,尤其是通过内置的`map`、`filter`和`reduce`函数,使得开发者能够以简洁而高效的方式处理数据。本文将深入探讨Python中的函数式编程理念,详细解析`map`、`filter`和`reduce`的工作原理及其应用场景。通过大量的代码示例和中文注释,展示如何利用这些函数简化复杂的迭代和数据处理任务,提升代码的表达 阅读详情

可以直接作用于for循环的数据类型有以下几种:

一类是集合数据类型,如list、tuple、dict、set、str等;

一类是generator,包括生成器和带yield的generator function。

这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。

可以使用isinstance()判断一个对象是否是Iterable对象:

>>> from collections import Iterable
>>> isinstance([], Iterable)
True
>>> isinstance({}, Iterable)
True
>>> isinstance('abc', Iterable)
True
>>> isinstance((x for x in range(10)), Iterable)
True
>>> isinstance(100, Iterable)
False

而生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。

可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。

可以使用isinstance()判断一个对象是否是Iterator对象:

>>> from collections import Iterator
>>> isinstance((x for x in range(10)), Iterator)
True
>>> isinstance([], Iterator)
False
>>> isinstance({}, Iterator)
False
>>> isinstance('abc', Iterator)
False

生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。

把list、dict、str等Iterable变成Iterator可以使用iter()函数:

>>> isinstance(iter([]), Iterator)
True
>>> isinstance(iter('abc'), Iterator)
True

你可能会问,为什么list、dict、str等数据类型不是Iterator?

这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。

Iterator甚至可以表示一个无限大的数据流,例如全体自然数。而使用list是永远不可能存储全体自然数的。




另外我们来说一下函数式编程是个什么玩意儿。

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。

而函数式编程(请注意多了一个“式”字)——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。

我们首先要搞明白计算机(Computer)和计算(Compute)的概念。

在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言。

而计算则指数学意义上的计算,越是抽象的计算,离计算机硬件越远。

对应到编程语言,就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言;越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言。

函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。

函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!

Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。




高阶函数

把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。

变量可以指向函数

以Python内置的求绝对值的函数abs()为例,调用该函数用以下代码:

>>> abs(-10)
10

但是,如果只写abs呢?

>>> abs
<built-in function abs>

可见,abs(-10)是函数调用,而abs是函数本身。

要获得函数调用结果,我们可以把结果赋值给变量:

>>> x = abs(-10)
>>> x
10

但是,如果把函数本身赋值给变量呢?

>>> f = abs
>>> f
<built-in function abs>

结论:函数本身也可以赋值给变量,即:变量可以指向函数。

如果一个变量指向了一个函数,那么,可否通过该变量来调用这个函数?用代码验证一下:

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

成功!说明变量f现在已经指向了abs函数本身。直接调用abs()函数和调用变量f()完全相同。

函数名也是变量

那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算绝对值的函数!

如果把abs指向其他对象,会有什么情况发生?

>>> abs = 10
>>> abs(-10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

把abs指向10后,就无法通过abs(-10)调用该函数了!因为abs这个变量已经不指向求绝对值函数而是指向一个整数10!

当然实际代码绝对不能这么写,这里是为了说明函数名也是变量。要恢复abs函数,请重启Python交互环境。

注:由于abs函数实际上是定义在__builtin__模块中的,所以要让修改abs变量的指向在其它模块也生效,要用__builtin__.abs = 10。

传入函数

既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

一个最简单的高阶函数:

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

当我们调用add(-5, 6, abs)时,参数x,y和f分别接收-5,6和abs,根据函数定义,我们可以推导计算过程为:

x = -5
y = 6
f = abs
f(x) + f(y) ==> abs(-5) + abs(6) ==> 11
return 11

用代码验证一下:

>>> add(-5, 6, abs)
11

编写高阶函数,就是让函数的参数能够接收别的函数。




Python中的map/reduce函数


map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现如下:

map

现在,我们用Python代码实现:

>>> def f(x):
...     return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]

map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。

你可能会想,不需要map()函数,写一个循环,也可以计算出结果:

L = []
for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]:
    L.append(f(n))
print(L)

的确可以,但是,从上面的循环代码,能一眼看明白“把f(x)作用在list的每一个元素并把结果生成一个新的list”吗?

所以,map()作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的f(x)=x2,还可以计算任意复杂的函数,比如,把这个list所有数字转为字符串:

>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']

只需要一行代码。

再看reduce的用法。reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

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

比方说对一个序列求和,就可以用reduce实现:

>>> from functools import reduce
>>> def add(x, y):
...     return x + y
...
>>> reduce(add, [1, 3, 5, 7, 9])
25

当然求和运算可以直接用Python内建函数sum(),没必要动用reduce。

但是如果要把序列[1, 3, 5, 7, 9]变换成整数13579,reduce就可以派上用场:

>>> from functools import reduce
>>> def fn(x, y):
...     return x * 10 + y
...
>>> reduce(fn, [1, 3, 5, 7, 9])
13579

这个例子本身没多大用处,但是,如果考虑到字符串str也是一个序列,对上面的例子稍加改动,配合map(),我们就可以写出把str转换为int的函数:

>>> from functools import reduce
>>> def fn(x, y):
...     return x * 10 + y
...
>>> def char2num(s):
...     return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
...
>>> reduce(fn, map(char2num, '13579'))
13579

整理成一个str2int的函数就是:

from functools import reduce

def str2int(s):
    def fn(x, y):
        return x * 10 + y
    def char2num(s):
        return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]
    return reduce(fn, map(char2num, s))

还可以用lambda函数进一步简化成:

from functools import reduce

def char2num(s):
    return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]

def str2int(s):
    return reduce(lambda x, y: x * 10 + y, map(char2num, s))

也就是说,假设Python没有提供int()函数,你完全可以自己写一个把字符串转化为整数的函数,而且只需要几行代码!

练习

利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']:

看我的:


其中,normalize就是使标准化的意思,而 capitalize有vi. 利用;积累资本vt. 使资本化;以大写字母写;估计…的价值 的意思。

capitalize()方法返回字符串的一个副本,只有它的第一个字母大写。


第二题:Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list并利用reduce()求积:



prod函数用于求数组元素的乘积,具体写法看代码。

第三题:利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456:


函数式编程——高阶函数(map/reduce/filter/sorted)、返回函数(闭包) 函数式编程是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。Python对函数式编程提供部分支持,由于Python允许使用变量,因此,Python不是纯函数式编... 阅读详情

相关推荐

【Python进阶语法】—— 函数式编程总结(生成器、迭代器、匿名函数、高阶函数、返回函数、闭包、装饰器、偏函数)

Python函数式编程的一般概念及特点, 迭代器、生成器表达式、内置函数、常用高阶函数、递归与归约、实用模块和装饰器的用法, 以及避开Python严格求值顺序的变通方法、Web服务设计方法和一些优化技巧。

Python全栈系列 2万+

廖雪峰《python3 基础教程》读书笔记——第六章函数式编程

第六章  函数式编程 1、函数式编程——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。 2、函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能

专注极致 1158

【Python函数式编程③】——Python高阶函数 map、reduce、filter

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。

Python全栈系列 3649

Python函数式编程:非科班转码者的入门指南

Python函数式编程是一种强大的编程范式,它可以帮助我们编写更简洁、更可维护的代码。作为一个非科班转码者,我认为学习函数式编程不仅可以提高代码质量,还可以培养不同的编程思维方式。虽然Python不是纯函数式编程语言,但它提供了丰富的函数式编程工具和库,使得我们可以在Python中应用函数式编程思想。同时,学习Rust的函数式编程特性也可以帮助我们更好地理解函数式编程的精髓。函数式编程可能不是所有问题的最佳解决方案,但它是一种重要的编程范式,值得我们学习和掌握。

no1coder的博客 1万+

嵌入式开发避坑指南:手把手教你用STM32CubeMX配置W9825G6KH SDRAM(含时序参数详解)

本文详细介绍了如何使用STM32CubeMX配置W9825G6KH SDRAM,包括硬件连接检查、CubeMX初始化步骤、时序参数优化及稳定性问题排查。通过实测波形分析和案例分享,帮助开发者避免常见配置错误,提升嵌入式系统性能与稳定性。

weixin_42542669的博客 197

霍尔电流传感器在新能源汽车中的应用综述

本文旨在全面剖析霍尔电流传感器在新能源汽车领域的应用现状、技术挑战及发展趋势。通过系统梳理其在电池管理系统、电机控制、车载充电等核心系统的应用场景,深入分析面临的技术瓶颈与创新解决方案,并基于最新技术动向展望未来发展方向,为相关领域的技术创新提供参考依据。

m0_46819860的博客 2259

python高阶函数(abs()、round()、map()、reduce()、filter())

python高阶函数(abs()、round()、map()、reduce()、filter())

IT之一小佬的博客 3648

告别实车测试:手把手教你用Vector VT平台搭建OBC/DCDC的HIL测试台架

本文详细介绍了如何利用Vector VT平台搭建新能源汽车OBC/DCDC的HIL测试台架,涵盖硬件选型、模型部署到自动化测试的全流程。通过HIL仿真测试技术,工程师可以高效验证动力域关键部件,大幅缩短开发周期并降低成本,特别适合新能源汽车三电系统的开发验证。

weixin_42659194的博客 339

Python高阶函数与函数式编程

函数式编程的思想在Python中得到了广泛的应用,通过高阶函数、匿名函数、map、filter、reduce等技术,开发者能够写出更为简洁、清晰的代码。理解这些概念和技术,能够使程序更易读、易维护,并有助于处理更为复杂的编程任务。在实际项目中,充分运用函数式编程的思想,可以提高代码的可读性和可维护性,让开发变得更加高效。感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。一、Python所有方向的学习路线。

qq_41314882的博客 968

STM32F4驱动ADS1220高精度ADC:从SPI配置到数据校准的完整实战指南

本文详细介绍了如何使用STM32F4微控制器驱动ADS1220高精度ADC,涵盖从SPI接口配置、寄存器设置到数据采集与校准的全过程。通过实战代码示例和硬件设计要点,帮助开发者快速构建高精度数据采集系统,适用于工业测量和精密仪器等应用场景。

weixin_26918763的博客 224

DrMOS电路仿真

将驱动电路与功率MOS集成化后既是DrMOS。把驱动芯片以及上下桥MOSFET封装在一起,这样每一相供电就有了单独的驱动芯片,并且这种高度整合的MOSFET可以通过更高的电流、发热比传统的MOSFET也小很多且更节能 自举升压同步BUCK高低侧栅驱动电路原理及仿真 ...

Srambler的博客 5039

Python函数式编程之map/filter/reduce/sorted

关键是声明和注释,内置方法你可以先忽略map(func, *iterables) --> map object # 第一个参数是个函数名,第二个参数是个可迭代的对象map的作用是将func作用到迭代器中的每个元素上此处的example对理解reduce非常重要--->有个递归的意思在里面from functools import reducereverse可以用来改变正序->倒序key可以用来自定义排序规则。

Mantou023的博客 906

训练AI:从数据收集到模型部署的完整指南

如果你刚开始接触AI,建议先学习一些基础的编程和机器学习知识,还可以使用现成的AI平台和工具来帮助你训练AI模型。在这篇文章中,我们将详细探讨从数据收集到模型部署的完整步骤,并提供一些有用的技巧和工具,以帮助你成功地训练自己的AI模型。在收集数据时,你需要从可靠的数据源(如数据仓库、数据集市、API接口)获取数据,确保数据的准确性和完整性。常用的划分比例是70%的数据集用于训练模型、15%的数据集用于验证模型,5%的数据集用于超参数调整,最后10%的数据集用于测试模型的性能。测试数据集用于测试模型的性能。

a_wsnd的博客 4166

Python中的函数式编程:lambda、map、reduce的使用场景

函数式编程通过lambdamap和reduce等工具,可以让你的代码更加简洁、易读和高效。在实际开发中,合理使用这些工具可以显著提升代码质量。在需要简洁函数定义的场景中优先使用lambda函数。在需要对数据集进行批量处理时使用map函数。在需要对数据集进行累积操作时使用reduce函数。阅读和分析优秀的Python代码,学习函数式编程的高级用法。希望这篇博客能够帮助你深入理解Python中的函数式编程,提升你的编程能力!如果你有任何问题或建议,欢迎在评论区留言!

司徒鸿的博客 1499

《拉依达的嵌入式\驱动面试宝典》—Linux篇(八)_Linux驱动编程

《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选

拉依达不拉跨的博客 319

电磁场仿真软件:COMSOL Multiphysics_(17).时域与频域分析

时域和频域分析是电磁场仿真中非常重要的两种方法,每种方法都有其独特的应用场景和优势。时域分析适用于瞬态响应和宽带信号的分析,而频域分析则适用于稳态响应和窄带信号的分析。在COMSOL Multiphysics中,通过合理设置物理场接口、材料属性、边界条件、网格划分和求解器,可以高效地进行这两种分析,并通过傅里叶变换将时域结果转换为频域结果,进一步拓展仿真应用的范围。合理的性能优化措施,如网格划分优化和并行计算,可以显著提高仿真的效率和准确性。

kkchenjj的博客 1976

Python学习系列之Map,Reduce和 Filter

Map,Filter 和 Reduce 三个高阶函数能为函数式编程提供便利。 首先看一下什么是MapReduce? 摘自wiki中关于MapReduce的解释: MapReduce是Google提出的一个软件架构,用于大规模数据集(大于1TB)的并行运算。概念“Map(映射)”和“Reduce(归纳)”,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。 当前的...

answer3lin的博客 3530

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

learn-python3 函数式编程:map、filter、reduce高阶函数完全指南

Python 函数式编程是现代编程的重要范式,其中 map、filter、reduce 高阶函数是函数式编程的核心工具。这些函数让代码更加简洁优雅,避免循环带来的复杂性,是每个 Python 开发者必须掌握的技能。🎯 ## 🔥 什么是函数式编程? 函数式编程是一种编程范式,它将计算视为数学函数的求值,避免改变状态和可变数据。在 Python 中,函数式编程主要通过高阶函数来实现,这些函数能

gitblog_00229的博客 767

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Python】释放数据处理的洪荒之力:Python 函数式编程中的 map、filter 和 reduce

函数式编程是一种强大的编程范式,它强调使用纯函数进行计算,避免状态的变化和副作用。Python 虽然并非纯函数式编程语言,但它提供了许多支持函数式编程的特性,其中 `map`、`filter` 和 `reduce` 三个高阶函数是函数式编程的重要组成部分。本文将深入探讨 Python 中函数式编程的概念,并结合大量实例和代码,详细讲解 `map`、`filter` 和 `reduce` 的用法、原理和应用场景,帮助读者理解如何利用这些函数编写简洁、高效且易于理解的代码,从而提升数据处理能力,释放数据处理的洪

一个被知识诅咒的人 1313

Python函数式编程:gh_mirrors/ma/materials中的map、filter与reduce实战

Python函数式编程是现代软件开发中的重要范式,它通过声明式的方式处理数据,让代码更加简洁、可读。在gh_mirrors/ma/materials项目中,我们找到了丰富的函数式编程示例代码,特别是map、filter和reduce这三个核心函数的实际应用。 ## 🎯 什么是Python函数式编程? 函数式编程是一种编程范式,它将计算视为数学函数的求值,避免改变状态和可变数据。在Python

gitblog_00789的博客 1031

Python Lambda、Filter、Map和Reduce:匿名函数与函数式编程工具深度解析

本教程深入解析Python中的三个函数式编程工具:Lambda匿名函数、filter()和map()。Lambda提供简洁的一行函数定义,适用于简单回调;filter()根据条件筛选可迭代对象元素;map()对可迭代对象执行统一转换。这些工具能替代传统循环,提升代码简洁性、可读性和执行效率。教程详细介绍了各工具的语法、工作流程、适用场景(如数据清洗、筛选、聚合)及局限性(如Lambda的单表达式限制)。通过丰富示例演示了实际应用方法,帮助开发者掌握这些函数式编程技巧。

weixin_42107409的博客 1109

【Python】—— 高阶函数

高阶函数详解

m0_56069910的博客 1856

【python高级用法】匿名函数(lambda)、map()、filter()、reduce()系列高阶函数

高阶函数是指能够接受其他函数作为参数或者返回函数作为结果的函数。在函数式编程中,高阶函数是一种强大的工具,它使得代码更加灵活、抽象和可复用。

qq_44091004的博客 1355

Python 高阶函数的使用之 map、filter 和 reduce

在 Python 中,高阶函数(Higher-Order Functions) 是指能够接受一个或多个函数作为参数,或者返回一个函数的函数。高阶函数能够让代码更加简洁、优雅,提高可读性和开发效率。Python 提供了多个常用的高阶函数,其中 `map()`、`filter()` 和 `reduce()` 是三种非常重要的函数式编程工具,分别用于映射、过滤和归约操作。本文将详细介绍它们的用法,并结合实际案例来展示如何利用这些函数简化代码。

945

12.Python的函数式编程:编写简洁高效的数据处理管道

本文介绍了Python函数式编程的核心技术,包括Lambda表达式、高阶函数(map/filter/reduce)、闭包和偏函数,并通过学生成绩处理案例展示如何构建高效数据处理管道。函数式编程优势在于提高代码可读性、减少副作用、增强复用性,特别适合数据转换和过滤场景。文章还对比了传统写法与函数式写法的差异,并提示避免在复杂业务逻辑中滥用。最后预告了下期将讲解Python文件IO操作和生成器处理大文件的技术。

热爱技术、喜欢学习、乐于分享 1236

python list .apply_Python学习笔记 :函数式编程之高阶函数

函数式编程函数式编程(Functional Programming),是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量。因此,任意一个函数,只要输入是确定的,输出就是确定的。函数式编程是一种"编程范式"(programming paradigm)。它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。函数式编程的一个特点就是,允许把函数本身作为参数传入另...

weixin_39976382的博客 1670
上一篇: 2016.4.10Python列表生成式及生成器generator
下一篇: 2016.4.13Python中的filter
despicablefolk
博客等级 码龄11年 12粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值