Python内置函数filter(),map(),reduce(),lambda
2019独角兽企业重金招聘Python工程师标准>>>
1、filter(function, sequence)
对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回
例如:
>>> def f(x): return x % 2 != 0 and x % 3 != 0
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]
>>> def f(x): return x != 'a'
>>> filter(f, "abcdef")
'bcdef'
2、map(function, sequence)
对sequence中的item依次执行function(item),见执行结果组成一个List返回
例如:
>>> def cube(x): return x*x*x
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> def cube(x) : return x + x
...
>>> map(cube , "abcde")
['aa', 'bb', 'cc', 'dd', 'ee']
另外map也支持多个sequence,这就要求function也支持相应数量的参数输入
例如:
>>> def add(x, y): return x+y
>>> map(add, range(8), range(8))
[0, 2, 4, 6, 8, 10, 12, 14]
3、reduce(function, sequence, starting_value)
对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用,例如可以用来对List求和
例如:
>>> def add(x,y): return x + y
>>> reduce(add, range(1, 11))
55 (注:1+2+3+4+5+6+7+8+9+10)
>>> reduce(add, range(1, 11), 20)
75 (注:1+2+3+4+5+6+7+8+9+10+20)
4、lambda
这是Python支持一种有趣的语法,它允许你快速定义单行的最小函数,类似与C语言中的宏,这些叫做lambda的函数,是从LISP借用来的,可以用在任何需要函数的地方
例如:
>>> g = lambda x: x * 2
>>> g(3)
6
>>> (lambda x: x * 2)(3)
6
lambda表达式返回一个函数对象
例如:
func = lambda x,y:x+y
func相当于下面这个函数:
def func(x,y):return x+y
注意:def是语句而lambda是表达式,下面这种情况下就只能用lambda而不能用def
[(lambda x:x*x)(x) for x in range(1,11)]
map,reduce,filter中的function都可以用lambda表达式来生成!
map(function,sequence)
把sequence中的值当参数逐个传给function,返回一个包含函数执行结果的list。
如果function有两个参数,即map(function,sequence1,sequence2)。
例子:
求1*1,2*2,3*3,4*4
map(lambda x:x*x,range(1,5))
返回值是[1,4,9,16]
reduce(function,sequence)
function接收的参数个数只能为2
先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给
function,然后只返回一个结果。
例子:
求1到10的累加
reduce(lambda x,y:x+y,range(1,11))
返回值是55。
filter(function,sequence)
function的返回值只能是True或False
把sequence中的值逐个当参数传给function,如果function(x)的返回值是True,就把x加到filter的返回值里面。一般来说filter的返回值是list,特殊情况如sequence是string或tuple,则返回值按照sequence的类型。
例子:
找出1到10之间的奇数
filter(lambda x:x%2!=0,range(1,11))
返回值
[1,3,5,7,9]
转载于:https://my.oschina.net/u/1020238/blog/486645
Python内置函数filter(),map(),reduce(),lambda相关推荐
- Python内置函数filter, map, reduce
filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车. 1. filter函数的功能相当 ...
- Python内置函数filter()和匿名函数lambda解析
一.内置函数filter filter()函数是 Python 内置的一个高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回由符合条件迭代器 ...
- 自定义生成器函数模拟Python内置函数filter()
祝"Python小屋"全体朋友新年快乐,身体健康,万事如意! ================== 作为Python函数式编程的三大巨头之一,内置函数filter()的地位是非常重 ...
- python内置函数之map函数的水桶效应------计算几个列表中相同位置的数据的和
与内置函数zip()都是水桶效应 lst1 = [1, 3, 5, 7] lst2 = [2, 4, 6, 8, 10] m = map(lambda x, y, z: x + y+ z, lst1, ...
- Python内置函数zip map filter的使用
并行遍历zip zip会取得一个或多个序理为参数,然后返回元组的列表,将这些序列中的并排的元素配成对. L1=[1,2,3,4] L2=[5,6,7,8] L3=zip(L1,L2) print(L3 ...
- Python 内置函数 filter()
假设出现异常收到一个10万条类脏数据,类似底下: information = [158804023652,'evan','互联网行业','阿里巴巴',15625445635,15884236525.. ...
- python filter内置函数_python 内置函数filter
python 内置函数filter class filter(object): """ filter(function or None, iterable) --> ...
- python filter函数_python 内置函数filter
python 内置函数filter class filter(object): """ filter(function or None, iterable) --> ...
- python内置函数boolsum_Python - 内置函数
Python - 内置函数 filter filter(处理逻辑, 可遍历对象)遍历序列中的每个元素,判断每个元素的布尔值为True则保留元素. 用法:返回执行结果为TRUE的入参(入参是列表字符元组 ...
- [转载] Python 内置函数 lambda、filter、map、reduce
参考链接: Python lambda (匿名函数) | filter, map, reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python ...
最新文章
- Sisyphus.js的使用
- Nginx反向代理Tomcat的配置方法
- [原创] Matlab 指派问题模型代码
- Mtk Android 打包解包*.img
- fpga供电电压偏低会怎样_[走近FPGA]之开发板介绍篇
- python 进度条_6种酷炫Python运行进度条
- 两个表的笛卡尔积sql语句,有相同列需区分
- python 微信小程序制作教程_微信小程序从零开始开发步骤(一)
- 阿里云备案服务号是什么怎么用?
- littlevgl教程 Linux,正点原子-手把手教你学LittlevGL
- 领导和同事嫌弃你的6个征兆,离失业不远了
- linux rescue 硬盘,linux rescue
- 【屏幕灯】MI电脑显示器灯条用户手册
- Android Studio 高德获取经纬度,定位
- my ReadBook_baozhuangxue / baozhuanggailun / 273154301
- 微信开发者工具无法选择预览和真机调试_小程序开发 第二篇:使用微信小程序开发者工具、wepy框架初始化项目...
- css如何选择同一个class下的第一个div?
- Turtle 模块基础详解-画直线
- qt开发是使用QT creator 还是用VS+qt?
- (第六天)学习Python的元组,字典,集合,公共操作
热门文章
- 提交不了_志愿提交不了,不一定是系统问题。为了成功填报,建议试试这7步...
- github进不去_app.gitbook.com进不去,一直卡着怎么回事
- 国内车载信息安全产业联盟成立
- SpringBoot的搭建
- AC自动机1030 [JSOI2007]文本生成器
- 新年快乐@2008!
- 下午,无心编程,读小诗...
- 典型信息化案例点评(2)
- 蓝桥杯 后缀字符串 map
- UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xae in position 53: illegal multibyte sequence