1.匿名函数:简化函数定义函数
格式:lambda args1,args2,.... : 运算spa
一般函数写法以下:3d
匿名函数写法以下:对象
注意:此时result1实际为函数名,就是一般函数中的def后跟的函数名:add,想要获得返回结果,还须要调用result1(),blog
若你只打印result1,出现的是函数因此引用的地址,以下图:排序
输出结果:it
2.匿名函数做为参数import
输出结果:匿名函数
3.匿名函数与内置函数的结合使用:原理
max()求列表最大值
一种状况:列表是可迭代对象
语法:max(list)
l
输出结果:
打印max(list)便可获得列表最大值
一种状况:列表中元素是字典类型
语法:max(list,key=func)
输入结果:
这里的lambda x:x['a']其实就是经过字典的key,求value的函数
函数max(list1,key=func)工做原理:第一个参数:list1告诉max函数是哪一个列表,而后经过key求出的value值再一个一个传给max计算得出最大值
min()求列表最小值
原理同max()同样,详细参考上述max()
map() :对列表中每一个元素进行遍历,运算,通常用于对列表每一个元素进行某些操做,好比+、-
语法:map(func,list)
注意:map()后须要用list()强转化为一个列表
输出结果:
对列表每一个值都+2处理,等同于遍历函数,以下:
输出结果:
还能够经过奇偶数操做,以下:
输出结果:
对奇数加1处理
reduce():对列表中元素从左到右进行加减乘除运算的函数
语法:ruduce(func,sequence,initial) # initial 默认值为None
输出结果:
注意:需到导入:from functools import reduce
工做原理为:result = ((0+1)+2)+3 = 6
若是设置initial = 10,以下:
输出结果:
工做原理为:result = ((10+1)+2)+3 = 16
filter():根据函数条件过滤列表,返回一个新列表,原列表不变
语法:filter(func,list)
注意:filter()后须要用list()强转化为一个列表
输出结果:
这里把大于3的元素都筛选出来了,至关于过滤函数,以下:
输出结果:
sorted():对列表进行排序
语法:sorted(list,key=func,reverse=False/True)
将'a'的value值从大到小排列
输出结果:
将'a'的value值从小到大排列
输出结果: