python定义一个匿名函数_Python--->匿名函数

1.匿名函数:简化函数定义

格式:lambda args1,args2,.... : 运算

通常函数写法如下:

1861518-20191115200945780-1523246363.png

匿名函数写法如下:

1861518-20191115202230610-1747327961.png

注意:此时result1实际为函数名,就是通常函数中的def后跟的函数名:add,想要得到返回结果,还需要调用result1(),

若你只打印result1,出现的是函数所以引用的地址,如下图:

1861518-20191115202637536-199416285.png

输出结果:

1861518-20191115202616783-137015512.png

2.匿名函数作为参数

1861518-20191115203312731-69222124.png

输出结果:

1861518-20191115203329025-46211157.png

3.匿名函数与内置函数的结合使用:

max()求列表最大值

一种情况:列表是可迭代对象

语法:max(list)

l

1861518-20191115204025644-872541921.png

输出结果:

1861518-20191115204140279-1204236902.png

打印max(list)即可得到列表最大值

一种情况:列表中元素是字典类型

语法:max(list,key=func)

1861518-20191115204328599-1965426828.png

输入结果:

1861518-20191115204344649-1416744981.png

这里的lambda x:x['a']其实就是通过字典的key,求value的函数

函数max(list1,key=func)工作原理:第一个参数:list1告诉max函数是哪个列表,然后通过key求出的value值再一个一个传给max计算得出最大值

min()求列表最小值

原理同max()一样,详细参考上述max()

map() :对列表中每个元素进行遍历,运算,一般用于对列表每个元素进行某些操作,比如+、-

语法:map(func,list)

注意:map()后需要用list()强转化为一个列表

1861518-20191115211633659-770060256.png

输出结果:

1861518-20191115211703185-1336765190.png

对列表每个值都+2处理,等同于遍历函数,如下:

1861518-20191115212641290-226194051.png

输出结果:

1861518-20191115211703185-1336765190.png

还可以通过奇偶数操作,如下:

1861518-20191115212604727-1367956254.png

输出结果:

1861518-20191115212533488-130511702.png

对奇数加1处理

reduce():对列表中元素从左到右进行加减乘除运算的函数

语法:ruduce(func,sequence,initial) # initial 默认值为None

1861518-20191115215152149-1907788497.png

输出结果:

1861518-20191115215330384-1895996123.png

注意:需到导入:from functools import reduce

工作原理为:result = ((0+1)+2)+3 = 6

如果设置initial = 10,如下:

1861518-20191115215525982-42130381.png

输出结果:

1861518-20191115215631309-1832780312.png

工作原理为:result = ((10+1)+2)+3 = 16

filter():根据函数条件过滤列表,返回一个新列表,原列表不变

语法:filter(func,list)

注意:filter()后需要用list()强转化为一个列表

1861518-20191115220655042-1184237036.png

输出结果:

1861518-20191115220709459-1162450824.png

这里把大于3的元素都筛选出来了,相当于过滤函数,如下:

1861518-20191115220941860-1458541833.png

输出结果:

1861518-20191115220958720-864068481.png

sorted():对列表进行排序

语法:sorted(list,key=func,reverse=False/True)

将'a'的value值从大到小排列

1861518-20191115221913121-1440358133.png

输出结果:

1861518-20191115222123218-1803458826.png

将'a'的value值从小到大排列

1861518-20191115222246354-1587766944.png

输出结果:

1861518-20191115222307601-571827880.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值