浅析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 字符串split的用法分享
Mar 23 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
python实现机器学习之多元线性回归
Sep 06 Python
Python爬虫基础之XPath语法与lxml库的用法详解
Sep 13 Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 Python
python+mysql实现学生信息查询系统
Feb 21 Python
Pyecharts绘制全球流向图的示例代码
Jan 08 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 Python
基于python获取本地时间并转换时间戳和日期格式
Oct 27 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
Dec 10 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/10/09 PHP
php4的session功能评述(三)
2006/10/09 PHP
php对称加密算法示例
2014/05/07 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
[01:35]2018年度CS GO最佳战队-完美盛典
2018/12/17 DOTA
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
python绘制封闭多边形教程
2020/02/18 Python
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
家居饰品店创业计划书
2014/01/31 职场文书
高中军训感言1000字
2014/03/01 职场文书
房屋委托书范本
2014/04/04 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
离婚协议书样本
2015/01/26 职场文书
Nginx快速入门教程
2021/03/31 Servers
python实现批量提取指定文件夹下同类型文件
2021/04/05 Python
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏
Go归并排序算法的实现方法
2022/04/06 Golang