day18 Pyhton学习 匿名函数
阅读原文时间:2023年07月12日阅读:2

匿名函数 别称: lambda表达式

函数,没有名字

def wahaha(n):#wahaha
return n**2
print(wahaha.__name__)

qqxing = lambda n : n**2
print(qqxing.__name__)#lambda
ret = qqxing(8)
print(ret)#64

f = lambda *args:sum(args)
ret = f(1,2,3,4,5)
print(ret)#15

# 匿名函数

定义

匿名函数的内存地址 = lambda 参数1,参数2 : 返回值/返回值的表达式

调用

接收返回值 = 匿名函数的内存地址(参数)

dic={'k1':10,'k2':100,'k3':30}
def func(k):
return dic[k]
m = max(dic,key = func)
print(m)#k2

m = max(dic,key = lambda k:dic[k])
print(m)#k2

# 内置函数+匿名函数
l1 = [1,5,7,4,8]

每一个数的平方%2

ret = map(lambda n : n**2%2 ,l1)
print(list(ret))#[1, 1, 1, 0, 0]

l2 = [3,10,20,50,22,7]

找到大于20的所有数

ret = filter(lambda n : n>20,l2)
print(list(ret))#[50, 22]

l3 = [{'name':'alex','age':83},{'name':'wusir','age':38}]

1.找到年龄大于40的值 filter

2.将列表中的项按照年龄从小到大排序 sorted

3.给列表中的每一个人的年龄+1

1

def func(dic):
return dic['age']>40
ret = filter(lambda dic:dic['age']>40,l3)
print(list(ret))#[{'name': 'alex', 'age': 83}]

#2
def func(dic):
return dic['age']
ret = sorted(l3,key=lambda dic:dic['age'])
print(ret)#[{'name': 'wusir', 'age': 38}, {'name': 'alex', 'age': 83}]

3 lambda 并不能取代函数

def func(dic):
dic['age'] += 1
return dic
ret = map(lambda dic : {'name':dic['name'],'age':dic['age']+1},l3)
print(list(ret))#[{'age': 84}, {'age': 39}]

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章