博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
map函数、filer函数、reduce函数的用法和区别
阅读量:5010 次
发布时间:2019-06-12

本文共 1152 字,大约阅读时间需要 3 分钟。

Map函数


 

map函数的用法如下:

def add_one(x):    return x+1#使用普通函数v1 = map(add_one,[1,2,3])v1 = list(v1)print(v1)   #打印结果为[2, 3, 4]  #使用匿名函数,代码更为简洁  v2 = map(lambda x:x+1,[1,2,3])v2 = list(v2)print(v2)   #打印结果为[2, 3, 4]

从代码可以看出,map()函数有两个传参,第一个为函数名,第二个为可迭代对象,效果是将可迭代对象的每一个元素放入函数中执行,然后把函数执行的返回值联合一起组成一个新的可迭代对象

 

filter函数


 

filter函数的用法如下:

 

def judge_sb(x):    return x.startswith("sb")#使用普通函数v1 = filter(judge_sb,sb_list)v1 = list(v1)print(v1)  #打印结果为['sb_001', 'sb_002']#使用匿名函数,代码更为简洁v2 = filter(lambda x:x.startswith("sb"),sb_list)v2 =list(v2)print(v2)   #打印结果为['sb_001', 'sb_002']

 

从代码可以看出,filter()函数有两个传参,第一个为函数名,第二个为可迭代对象,效果是将可迭代对象的每一个元素放入函数中执行,然后把函数执行的返回值为真,就把那个传参保留,如果为假就舍弃,最终将传参联合一起组成一个新的可迭代对象

reduce函数


 

reduce函数的用法如下:

from functools import reduce   #要导入模块def add(x,y):     return x+y#使用普通函数v1 = reduce(add,[1,2,5,7])print(v1)   #打印结果为15#使用匿名函数,代码更为简洁v2 = reduce(lambda x,y:x+y,[1,2,5,7])print(v2)   #打印结果为15

从代码可以看出,filter()函数有两个传参,第一个为函数名,第二个为可迭代对象,效果是将可迭代对象的每一个元素进行类似累加、累乘这种压缩的操作,最后返回一个值

总结


 

#处理序列中的每个元素,得到的结果是一个可迭代对象,其元素个数及位置与原来一样

map()

#遍历序列中的每个元素,判断每个元素得到布尔值,如果True则留下来

filter()

#处理一个序列,然后把序列进行合并操作

reduce()

 

转载于:https://www.cnblogs.com/codescrew/p/8678421.html

你可能感兴趣的文章
SQL SERVER BOOK
查看>>
JS基础回顾,小练习(判断数组,以及函数)
查看>>
多任务——进程
查看>>
WCF:如何将net.tcp协议寄宿到IIS
查看>>
WebAPI HelpPage支持area
查看>>
Path元素
查看>>
php_soap扩展应用
查看>>
GUID和自增ID的比较_top
查看>>
第二百三十一节,Bootstrap 介绍
查看>>
vi/vim 三种模式的操作
查看>>
JAVA面向对象三大特性总结
查看>>
guid
查看>>
Python中出现“TabError: inconsistent use of tabs and spaces in indentation”问题的解决
查看>>
ajax请求
查看>>
js学习总结----DOM增删改和应用
查看>>
希尔伯特矩阵(Hilbert matrix)
查看>>
(20)sopel算法
查看>>
学习总结 javascript 闭包
查看>>
实验吧一个小坑注入
查看>>
【 D3.js 高级系列 — 8.0 】 打标
查看>>