浅析python函数式编程


Posted in Python onSeptember 26, 2020

目录

  • map
  • filter
  • reduce
  • zip
  • sortedmap

map

其中,function 参数表示要传入一个函数,其可以是内置函数、自定义函数或者 lambda 匿名函数;iterable 表示一个或多个可迭代对象,可以是列表、字符串等。
map() 函数的功能是对可迭代对象中的每个元素,都调用指定的函数,并返回一个 map 对象。

listDemo = [1, 2, 3, 4, 5]
new_list = map(lambda x: x * 2, listDemo)
print(list(new_list))

filter

filter() 函数的功能是对 iterable 中的每个元素,都使用 function 函数判断,并返回 True 或者 False,最后将返回 True 的元素组成一个新的可遍历的集合。

listDemo = [1, 2, 3, 4, 5]
new_list = filter(lambda x: x % 2 == 0, listDemo)
print(list(new_list))

reduce

reduce() 函数通常用来对一个集合做一些累积操作,其基本语法格式为:
reduce(function, iterable)

import functools
listDemo = [1, 2, 3, 4, 5]
product = functools.reduce(lambda x, y: x * y, listDemo)
print(product)

zip

>>>a = [1,2,3]
>>>b = [4,5,6]
>>>c = [4,5,6,7,8]
>>>zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>>zip(a,c)     # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>>zip(*zipped)   # 与 zip 相反,可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

sorted

>>> L=[('b',2),('a',1),('c',3),('d',4)]
>>> sorted(L, key=lambda x:x[1])        # 利用key
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]

>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2])      # 按年龄排序
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

以上就是浅析python函数式编程的详细内容,更多关于python函数式编程的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python二叉树的实现实例
Nov 21 Python
python实现数组插入新元素的方法
May 22 Python
Python中的zipfile模块使用详解
Jun 25 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
Python设计模式之代理模式简单示例
Jan 09 Python
Python GUI布局尺寸适配方法
Oct 11 Python
pytorch实现mnist分类的示例讲解
Jan 10 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
详解向scrapy中的spider传递参数的几种方法(2种)
Sep 28 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 Python
python用Configobj模块读取配置文件
Sep 26 #Python
Python内存泄漏和内存溢出的解决方案
Sep 26 #Python
python 两种方法修改文件的创建时间、修改时间、访问时间
Sep 26 #Python
如何使用Python调整图像大小
Sep 26 #Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 #Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 #Python
详解Python中第三方库Faker
Sep 25 #Python
You might like
php UBB 解析实现代码
2011/11/27 PHP
新浪微博OAuth认证和储存的主要过程详解
2015/03/27 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
戴森美国官网:Dyson美国
2016/09/11 全球购物
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
Ibatis的核心配置文件都有什么
2014/09/08 面试题
如何转换一个字符串到enum值
2014/04/12 面试题
高级Java程序员面试要点
2013/08/02 面试题
影视动画专业个人的自我评价
2013/12/31 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
敬老院活动总结
2014/04/28 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
小学生差生评语
2014/12/29 职场文书
个人催款函范文
2015/06/23 职场文书
辞职信怎么写?
2019/05/21 职场文书
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
如何用六步教会你使用python爬虫爬取数据
2022/04/06 Python
nginx 添加http_stub_status_module模块
2022/05/25 Servers