浅析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抓取京东图书评论数据
Aug 31 Python
Pyhton中防止SQL注入的方法
Feb 05 Python
python链接Oracle数据库的方法
Jun 28 Python
开始着手第一个Django项目
Jul 15 Python
解决PyCharm中光标变粗的问题
Aug 05 Python
Django处理文件上传File Uploads的实例
May 28 Python
python实现搜索文本文件内容脚本
Jun 22 Python
详解python的argpare和click模块小结
Mar 31 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
python实现淘宝购物系统
Oct 25 Python
Django ORM实现按天获取数据去重求和例子
May 18 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 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递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
php调用新浪短链接API的方法
2014/11/08 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
php实现推荐功能的简单实例
2019/09/29 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
python随机取list中的元素方法
2018/04/08 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
python 读取.nii格式图像实例
2020/07/01 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
会计师事务所实习证明
2014/11/16 职场文书
年度考核表个人总结
2015/03/06 职场文书
调解书格式范本
2015/05/20 职场文书
护士业务学习心得体会
2016/01/25 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
react 项目中引入图片的几种方式
2021/06/02 Javascript
Vue如何清空对象
2022/03/03 Vue.js