浅析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的lambda匿名函数的简单介绍
Apr 25 Python
详解Python中break语句的用法
May 14 Python
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 Python
python 获取文件下所有文件或目录os.walk()的实例
Apr 23 Python
python批量下载网站马拉松照片的完整步骤
Dec 05 Python
Python 判断奇数偶数的方法
Dec 20 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
python分割一个文本为多个文本的方法
Jul 22 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
Python爬虫使用bs4方法实现数据解析
Aug 25 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
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
人族 TERRAN 概述
2020/03/14 星际争霸
拼音码表的生成
2006/10/09 PHP
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
js中将字符串转换成json的三种方式
2011/01/12 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
js 作用域和变量详解
2017/02/16 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
python pickle 和 shelve模块的用法
2013/09/16 Python
Python中关键字is与==的区别简述
2014/07/31 Python
Python文件去除注释的方法
2015/05/25 Python
python基础教程之Filter使用方法
2017/01/17 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
浅析Python与Mongodb数据库之间的操作方法
2019/07/01 Python
Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
2019/08/07 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
python 错误处理 assert详解
2020/04/20 Python
python小白切忌乱用表达式
2020/05/29 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
加拿大领先的冒险和户外零售商:Atmosphere
2017/12/19 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
快餐店的创业计划书范文
2014/01/29 职场文书
廉洁校园实施方案
2014/05/25 职场文书
门卫岗位职责
2015/02/09 职场文书
python中if和elif的区别介绍
2021/11/07 Python