浅析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图书管理系统
Apr 05 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
python unittest实现api自动化测试
Apr 04 Python
Django 跨域请求处理的示例代码
May 02 Python
python skimage 连通性区域检测方法
Jun 21 Python
将pandas.dataframe的数据写入到文件中的方法
Dec 07 Python
详解python解压压缩包的五种方法
Jul 05 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
PyCharm取消波浪线、下划线和中划线的实现
Mar 03 Python
python实现AHP算法的方法实例(层次分析法)
Sep 09 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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日历程序
2006/12/06 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
php版本的cron定时任务执行器使用实例
2014/08/19 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
html读出文本文件内容
2007/01/22 Javascript
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
JavaScript中检测变量是否存在遇到的一些问题
2013/11/11 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
2016/04/01 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
js实现简单点赞操作
2020/03/17 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
html5通过canvas实现刮刮卡效果示例分享
2014/01/27 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
综合素质评价个性发展自我评价
2015/03/06 职场文书
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android