码迷,mamicode.com
首页 > 其他好文 > 详细

匿名函数

时间:2020-05-28 23:29:34      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:ping   fan   默认   薪资   neu   了解   filter   ack   div   

匿名函数

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)

匿名函数

标签:ping   fan   默认   薪资   neu   了解   filter   ack   div   

原文地址:https://www.cnblogs.com/zhww/p/12983981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!