猫史档案馆


【Python作品分享】map函数,filter函数,lambda表达式【教程贴】

用户:五二刘家旭无虑的小编喵五二刘家旭无虑的小编喵查看:4 回复:3 评论:4 创建时间:2022-02-07T11:11:58


【作品展示】

center_image

 

【作品介绍】

本章是教程贴,制作不易,很愿意帮到大家。如有问题,不要刷屏,不要引战。如果你觉得不错,别忘了关注,谢谢。(定期发布python)

 

【作品源代码】

#本文件是教程贴,内容有难度!python新手慎入!(我虽然是学生党,但是我是python高手(以我10岁这个年龄来看))
#这里面的代码不支持积木!
'''
    map(函数, 集合)函数起到映射集合元素的作用,即把第2个参数传入集合的变量中,每一个元素依次到当成第1个参数
函数的参数进行调用,并把返回的值组成一个新的生成器。该函数的参数当中就有1个参数为函数类型,由于平常使用的映射
函数的计算比较简单,因此在这里可以使用匿名函数。
    一般匿名函数无法单独使用,总是作为参数传入其他的函数中发挥作用。以map()函数为例,假如有一系列的数,需要
计算这一系列数的绝对值,如1的绝对值是1,-2的绝对值是2,3的绝对值是3,-4的绝对值是4。想必大家都找寻到了规律吧。
在系统中内置abs函数就可以求绝对值,它传入一个数字然后返回这个数字的绝对值。
'''
#三个单引号是多行注释
#在map()中使用abs函数并打印
print(list(map(abs, [2,34,-34,-68,68]))) #abs是求绝对值的函数,上文已经做了解释。(不需加小括号)
#定义double()函数
def double(x):
    return 2*x
#在map()中使用double函数并打印(不难看出,自定义函数也适用!)
print(list(map(double, [2, 3, 4, 5])))
#lambda(读的时候b不发音)表达式就是一个匿名函数,顾名思义,就是无名参数。好处:1节省内存,不会卡|2简便。
#lambda表达式格式:lambda+空格+参数名+:(英文冒号)+函数语句(相当于return XXX,是返回表达式,可以写任何类型
#)
'''
我们可以定义一个和double函数功能一样的匿名函数:
    lambda x:2*x(参数名不一定是x,冒号右边的部分可以理解为整数、浮点数或字符串类型)
这个时候就不能单独使用,而是在map()中使用了!
'''
#在map()中使用判断数字是否为3的倍数的匿名函数
print(list(map(lambda x:x%3==0, [568, 234, 345, 773])))#lambda表达式冒号右边的部分也可以是布尔值!
#数是我随便输的。运行结果:[False, True, True, False]
#可能有小伙伴会问:“那我直接调用该函数不就行了吗?”
'''
回答:“不,用map函数比直接调用有两个好处:
    1、节省内存,不会卡
    2、在需要调用某函数多次的情况下,将参数组成一个列表,最终把返回的值组成一个新的生成器,无需一个个地调用,
        方便快捷。(若要取单个值,将结果赋值给一个变量,用变量名[单个值的下标]即可)”
'''
#今天就到这里,下期见!

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
五二刘家旭无虑的小编喵五二刘家旭无虑的小编喵

对不起各位,没有filter函数,下章讲

点赞0


评论


一门鸽鸽一门鸽鸽

我觉得你可以给某些人讲一下生成器是啥

lambda能单独使用,只是不常单独用,好处可以加上无需命名

可以这样写:lambda冒号左边定义参数,右边返回值,可以是任意数据类型

点赞0


评论


Albert钟Albert钟

map,filter,lambda这些真的不要用太多,看上去很高级,但连guido都不太喜欢,过度封装了可读性就差了

点赞0


评论