Python正课48 —— 匿名函数及其应用

python

https://www.cnblogs.com/xuexianqi/p/12573219.html

1.def用于定义有名函数

# func = 函数的内存地址

def func(x,y):

return x,y

print(func)

2.lambda用于定义匿名函数

print(lambda x,y:x+y)

3.调用匿名函数

lambda x,y:x+y只是一个内存地址,要加()才能调用

# 方式1:

res = (lambda x,y:x+y)(1,2)

print(res)

# 方式2:

func = lambda x,y:x+y

res = func(1,2)

print(res)

4.匿名函数用于临时调用一次的场景:更多的是将匿名函数与其他函数配合使用

二:匿名函数的应用

1.需求1:找出薪资最高的那个人 ==> lili

salaries = {

'siri': 3000,

'tom': 7000,

'lili': 10000,

'jack': 2000

}

# res = max([2,144,7,999])

# print(res)

# res = max(salaries) # 默认按照key排序

# print(res)

输出:tom

salaries = {

'siri': 3000,

'tom': 7000,

'lili': 10000,

'jack': 2000

}

# 迭代出的内容 比较的值

# 'siri' 3000

# 'tom' 7000

# 'lili' 10000

# 'jack' 2000

def func(k):

return salaries[k]

# =======max=======

res = max(salaries, key=func) # 返回值 = func('siri')

print(res)

# =======min=======

res=min(salaries,key=lambda k:salaries[k])

print(res)

# =======sorted排序=======

res = sorted(salaries,key=lambda k:salaries[k])

print(res)

map的应用(了解)

l = ['alex', 'lxx', 'wxx', '薛贤奇']

new_l = (name + 'dsb' for name in l)

print(new_l)

生成器

l = ['alex', 'lxx', 'wxx', '薛贤奇']

res = map(lambda name:name + 'dsb',l)

print(res) # 生成器

l = ['alex', 'lxx', 'wxx', '薛贤奇']

# res = (name for name in l if name.endswith('sb'))

# print(res)

filter(lambda name:name.endwith('sb'),l)

reduce的应用(了解)

from functools import reduce

res = reduce(lambda x,y:x+y,[1,2,3],10) # 16

print(res)

res = reduce(lambda x,y:x+y,['a','b','c'],'Hello') # Helloabc

print(res)

res = reduce(lambda x,y:x+y,['a','b','c']) # Helloabc

print(res)

以上是 Python正课48 —— 匿名函数及其应用 的全部内容, 来源链接: utcz.com/z/389380.html

回到顶部