python函数(三)------匿名函数

匿名函数

函数只执行一次的情况下,通过定义匿名函数处理比较简单的逻辑

  • 匿名函数的定义
用lambda关键字定义匿名函数
def func(x):
    return x**2
上面这个普通函数可以写成匿名函数
匿名函数结构:函数名=lambda 参数:执行的语句并返回
cacl=lambda n:n**2
print(cacl(10))#100

也可以写成下面这种格式:(多个参数,中间用逗号隔开)
函数名 = lambda 参数1,参数2… :返回值
func =lambda x,*args:(x,args)
print(func(1,2,3,4,5,'a'))#(1, (2, 3, 4, 5, 'a'))

匿名函数并不是不能有名字,匿名函数的调用和正常函数的调用没太大区别
  • 匿名函数举例
例:求字典里的值的最大值
dic={'k1':10,'k2':100,'k3':30}
print(max(dic.values()))
#用匿名函数写
dic={'k1':10,'k2':100,'k3':30}
ret=dic[max(dic,key=lambda k:dic[k])]

例:求列表中各数的二次幂
li=[1,5,7,4,8]
ret=map(lambda x:x**2,li)
print(list(ret))#[1, 25, 49, 16, 64]

例:求列表中大于10的数,并返回一个新列表
li=[5,8,11,9,15]
ret=filter(lambda x:x>10,li)
print(list(ret))#[11, 15]

例:对字典按值进行降序排序
dic = {'b':2,'c':3,'a':1}
ret=sorted(dic.items(),key=lambda x:x[1],reverse=True)
print(ret)#[('c', 3), ('b', 2), ('a', 1)]
#如果按键进行排序,只需将key=lambda x:x[1]改为key=lambda x:x[0]即可
posted @ 2021-03-17 22:15  辰-月  阅读(349)  评论(0)    收藏  举报