匿名函数

匿名函数:为了解决那些功能很简单的需求而设计的一句话函数
格式 :  函数名 = lambda 参数:返回值
    关键字 lambda,而且不允许换行,切冒号后面的语句必须为一个可执行的逻辑
    参数可以多个,用逗号隔开
    匿名函数不管逻辑多复杂,只能写一行,切逻辑执行结束后的内容就是返回值
    返回值和正常的函数一样可以是任意数据类型
带key的内置函数:min max filter map sorted   均可以与lambda使用

#一个自定义函数
def calc(n):
    return n**n
print(calc(10))

# 转换为匿名函数
calc = lambda n:n**n
print(calc(10))

# 自定义一个简单函数
def add(x,y):
    return x+y

add = lambda x,y:x+y
print(add(1,2))
#需求,在一个字典里取最大的Value,返回对应的key
#
dic = {'k1':10,'k2':100,'k3':30}
#def func(k):
 #   return dic[k]
#转换为匿名函数
#func = lambda k:dic[k]
#print(max(dic,key=func))
print(max(dic,key = lambda k:dic[k]))
# 解释一下代码
res = filter(lambda x: x > 10, [5, 8, 11, 9, 15])
for i in res:
    print(i)

#解析:筛选列表中大于10的数字并答应
# 思路:先将filter拆解,因为会执行for循环将可迭代里的元素一个个取出来:filter(函数名,可迭代的)
# 函数名 = lambda x: x > 10   可迭代的=[5, 8, 11, 9, 15]
# 匿名函数再转换
#def func(x):
#   return x >10
    
l = [5, 8, 11, 9, 15]
def func(x):
    return x > 10

funcc = lambda x: x > 10
ress = filter(func, l)
for i in ress:
    print(i)

 

posted on 2019-02-17 03:17  Jerry-Wang  阅读(171)  评论(0)    收藏  举报