浅析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中利用函数装饰器实现备忘功能
Mar 30 Python
在Python的循环体中使用else语句的方法
Mar 30 Python
Python3里的super()和__class__使用介绍
Apr 23 Python
按日期打印Python的Tornado框架中的日志的方法
May 02 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
Nov 29 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
Python实现绘制双柱状图并显示数值功能示例
Jun 23 Python
对python的bytes类型数据split分割切片方法
Dec 04 Python
让你Python到很爽的加速递归函数的装饰器
May 26 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
python获取linux系统信息的三种方法
Oct 14 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 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解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
Bootstrap CSS组件之大屏幕展播
2016/12/17 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
VUE+Element实现增删改查的示例源码
2020/11/23 Vue.js
详解阿里Node.js技术文档之process模块学习指南
2021/01/04 Javascript
Python splitlines使用技巧
2008/09/06 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
python 异常处理总结
2016/10/18 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
运动会稿件100字
2014/02/21 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
七一建党节演讲稿
2014/09/11 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
教育实习指导教师评语
2014/12/31 职场文书
Java实现二维数组和稀疏数组之间的转换
2021/06/27 Java/Android
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP