浅析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 06 Python
Python中的两个内置模块介绍
Apr 05 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
pandas针对excel处理的实现
Jan 15 Python
Python3+Flask安装使用教程详解
Feb 16 Python
用Python将GIF动图分解成多张静态图片
Jun 11 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 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详细彻底学习Smarty
2008/03/27 PHP
php正则表达匹配中文问题分析小结
2012/03/25 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
Linux下PHP连接Oracle数据库
2014/08/20 PHP
PHP+shell实现多线程的方法
2015/07/01 PHP
php中final关键字用法分析
2016/12/07 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
jQuery模拟爆炸倒计时功能实例代码
2017/08/21 jQuery
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
详解python之多进程和进程池(Processing库)
2017/06/09 Python
简单了解什么是神经网络
2017/12/23 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
考博自荐信
2013/10/25 职场文书
法学专业本科生自荐信范文
2013/12/17 职场文书
综治宣传月活动总结
2014/04/28 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
工程承包协议书范本
2014/09/29 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
工地食品安全责任书
2015/05/09 职场文书
早安问候语大全
2015/11/10 职场文书
体育部部长竞选稿
2015/11/21 职场文书
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android