1.python函数式编程-map函数
编程方法论
- 面向过程
- 函数式
- 面向对象
面向过程
将编程过程拆分成多个步骤,在函数中按照每个步骤进行编程;
函数式编程
编程语言定义的函数+数学意义的函数
1、不可变,不用变量保存状态,不修改变量;
2、第一类对象,函数即变量---------高阶函数:把函数当做参数传递给另外一个函数;返回值中包含函数。(装饰器)
3、尾调用:在函数的最后一步调用另外一个函数(最后一行不一定是函数的最后一步)
调用栈:在系统调用递归函数的时候不是最后一步(区别最后一行),则需要保留当前层的状态。如果是最后一步进入递归,则不用保留当前层状态,性能更强。(递归函数的优化则需要进入尾调用,进入尾递归)
函数:
map:处理序列中的每个元素,得到的结果是一个“列表”,该“列表”元素个数及位置与原来一样
filter:遍历序列中的每个元素,判断每个元素得到的布尔值,如果是True则留下来
reduce:将多个数值合并到一块
map函数
将方法和要处理的数据通过参数传入函数中,在函数调用的时候可以指定不同的方法,方法更加灵活。
num_1 = [1,2,3,10,5,7,9]
def mapfunc(func,array):
ret = []
for i in array:
ret.append(func(i))
return ret print(mapfunc(lambda x:x+1,num_1)) #执行自增加一
print(mapfunc(lambda x:x**2,num_1)) #执行二次方
执行结果:
[2, 3, 4, 11, 6, 8, 10]
[1, 4, 9, 100, 25, 49, 81]
map函数
num_1 = [1,2,3,10,5,7,9]
res = map(lambda x:x+1,num_1) #res为迭代器,只能调用一次,一般使用list方法来查看迭代器的值
print(res)
print(list(res))
执行结果:
<map object at 0x000001F93A610160>
[2, 3, 4, 11, 6, 8, 10]
1.python函数式编程-map函数的更多相关文章
- (转)Python函数式编程——map()、reduce()
转自:http://www.jianshu.com/p/7fe3408e6048 1.map(func,seq1[,seq2...]) Python 函数式编程中的map()函数是将func作用于se ...
- Python函数式编程——map()、reduce()
文章来源:http://www.pythoner.com/46.html 提起map和reduce想必大家并不陌生,Google公司2003年提出了一个名为MapReduce的编程模型[1],用于处理 ...
- Python函数式编程-map/reduce
1.map map()传入的第一个参数是f,即函数对象本身. map()函数接收两个参数,一个是函数,一个是Interable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterat ...
- python函数式编程-偏向函数
Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 在介绍函数参数的时候,我们讲到,通过 ...
- python函数式编程-匿名函数
>>> map(lambda x: x * x, [, , , , , , , , ]) [, , , , , , , , ] 关键字lambda表示匿名函数,冒号前面的x表示函数参 ...
- python函数式编程——返回函数
1.函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 2.闭包 注意到返回的函数在其定义内部引用了局部变量args,所以,当一个函数返回了一个函数后,其内部的局部变量还 ...
- python函数式编程——匿名函数(lambda)
匿名函数lambda lambda x:x*x x就是参数 相当于函数 def f(x): return x*x 匿名函数可以作为函数对象赋值给变量: >>> f = lambda ...
- python 函数式编程:高阶函数,map/reduce
python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...
- python函数式编程之返回函数、匿名函数、装饰器、偏函数学习
python函数式编程之返回函数 高阶函数处理可以接受函数作为参数外,还可以把函数作为结果值返回. 函数作为返回值 def laxy_sum(*args): def sum(): ax = 0; fo ...
随机推荐
- npm和yarn的区别
npm和yarn的区别,我们该如何选择? 周一入职,同事JJ让我熟悉一下基于React的新项目.按照以往,我的步骤都是: git clone xxx npm install npm run dev 这 ...
- 首篇 sdk 之 AlertDialog
带着十足的干劲,用着有限的英语水平,我们来看看sdk里docs里的AlertDialog: AlertDialog SDK 原文描述:A dialog that can show a title, u ...
- x1c 2018 静音调教
折腾快1周,在去intel官网手动下载最新显卡驱动,手动卸载老驱动,断网,重启,手动安装之后(还要再禁用点和散热相关的设备).终于不卡了.开始工作,但又遇到一个问题:太TM吵了! 经过调教,基本保障看 ...
- CentOS7.6 如何设置静态ip
[root@localhost network-scripts]# cd /etc/sysconfig/network-scripts/[root@localhost network-scripts] ...
- (转)C# Assembly.Load 使用
在C#中,我们要使用反射,首先要搞清楚以下命名空间中几个类的关系: System.Reflection命名空间(1) AppDomain:应用程序域,可以将其理解为一组程序集的逻辑容器(2) As ...
- Enable SMB2 on the Client
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation edit DependOnService and add ...
- 利用Anaconda完美解决Python 2与python 3的共存问题
前言 现在Python3 被越来越多的开发者所接受,同时让人尴尬的是很多遗留的老系统依旧运行在 Python2 的环境中,因此有时你不得不同时在两个版本中进行开发,调试. 如何在系统中同时共存 Pyt ...
- 利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD
利用Vistual Studio自带的xsd.exe工具,根据XML自动生成XSD 1, 命令提示符-->找到vs自带的xsd.exe工具所在的文件夹 例如: C:\Program Files ...
- Alibaba Java诊断工具Arthas之快速安装和简单使用
Alibaba Java诊断工具Arthas简单介绍 : 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决: 1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception ...
- unitest 测试集 实例
-->baidy.py #coding=utf-8from selenium import webdriverfrom selenium.webdriver.common.by import B ...