python之匿名函数

一、匿名函数

 1、def用于定义有名函数

func=函数的内存地址
def func(x,y):
    return x+y

print(func)

 2、lamdab用于定义匿名函数

print(lambda x,y:x+y)

 3、调用匿名函数

方式一:
res=(lambda x,y:x+y)(1,2)
print(res)

方式二:
func=lambda x,y:x+y  # 一般不会这么做,还不如定义有名函数
res=func(1,2)
print(res)

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

二、匿名函数的应用场景

salaries={
    'siry':3000,
    'tom':7000,
    'lili':10000,
    'jack':2000
}

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

res=max([3,200,11,300,399])
print(res)

res=max(salaries)
print(res) # Tom

正确:

salaries={
    'siry':3000,
    'tom':7000,
    'lili':10000,
    'jack':2000
}
"""
迭代出的内容    比较的值
'siry'         3000
'tom'          7000
'lili'         10000
'jack'         2000
"""
def func(k):
    return salaries[k]

=============max的应用===========
res=max(salaries,key=func) # 返回值=func('siry')--->指定函数会自己去调用
print(res)

res=max(salaries,key=lambda k:salaries[k]) #---->推荐使用,简洁且不丧失可读性
print(res)

=============min的应用===========
res=min(salaries,key=lambda k:salaries[k])
print(res)

=============sorted排序===========
res=sorted(salaries,key=lambda k:salaries[k],reverse=True)  # reverse就是排序完再反过来 
print(res)

了解性质:

# 函数了解
==============map的应用(了解)==========
l=['alex','lxx','wxx','薛贤妻']
new_l=(name+'_dsb' for name in l)
print(new_l)

res=map(lambda name:name+'_dsb',l)
print(res) # 生成器
============filter的应用(了解)============
l=['alex_sb','lxx_sb','wxx','薛贤妻']
res=(name for name in l if name.endswith('sb'))
print(res)

res=filter(lambda name:name.endswith('sb'),l)
print(res)

============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']) # 'a','b'
print(res)
posted @ 2020-03-26 16:59  Lance_王  阅读(180)  评论(0编辑  收藏  举报