1. 匿名函数的作用
为了解决那些功能很简单的需求而设计的一句话函数
2. 语法格式
# 函数名:lambda 参数:返回值
# 参数可以有多个,用逗号隔开
# 匿名函数不管逻辑多负责,都只能写一行;且逻辑执行结束后的内容就是返回值
# 返回值和正常函数一样,可以是任意数据类型
3. 匿名函数实例
实例1
# 1.普通定义函数
def calc(n):
return n * n
print(calc(10)) # 100
# 2.换成匿名函数
calc2 = lambda n: n * n
print(calc2(10)) # 100
# 3.多参数函数
def add2(x,y):
return x+y
print(add2(3,5)) # 8
# 4.多个参数,逗号隔开
add2 = lambda x,y:x+y
print(add2(3,5)) # 8
实例2
先了解一下max/min函数
def max(*args, key=None): # known special case of max
"""
max(iterable, *[, default=obj, key=func]) -> value
max(arg1, arg2, *args, *[, key=func]) -> value
With a single iterable argument, return its biggest item. The
default keyword-only argument specifies an object to return if
the provided iterable is empty.
With two or more arguments, return the largest argument.
"""
pass
以max函数为例,可知max函数其实还是有个key参数的,默认情况下为空
- 当key参数为空时:默认取列表中最大值,而字典则是默认取得最大的健key
- 当key参数不为空时,就以key的函数对象为判断的标准
# 1.列表
l=[3,2,100,999,213,1111,-31121,333]
# 1.1 获取列表l中最大的值
print(max(l)) # 1111
# 1.2 获取列表l中绝对值最大的值
print(max(l,key=lambda x:abs(x))) # -31121
# 2.字典
dic={'k1':10,'k2':100,'k3':30}
# 2.1 默认获取dic的最大key
print(max(dic)) # k3
# 通过lambda函数赋值key参数,获取dic的最大value
print(dic[max(dic,key=lambda k:dic[k])]) # 100
# 2.2 获取dic的最小key
print(min(dic)) # k1
# 2.3 获取dic的最小value
print(dic[min(dic,key=lambda k:dic[k])]) # 10
# 3. 现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
t1 = (('a'),('b'))
t2 = (('c'),('d'))
# 3.1 答案一
test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
print(test(t1,t2))
# 3.2 答案二
print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
# 3.3 还可以这样写
print([{i:j} for i,j in zip(t1,t2)])