• 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)
    
  • 相关阅读:
    指令汇B新闻客户端开发(三) 下拉刷新
    安卓消息推送解决方案
    java常用的7大排序算法汇总
    内存溢出的解决方案
    指令汇B新闻客户端开发(二) 主页面布局
    指令汇B新闻客户端开发(一) 新手引导页开发
    2015最流行的Android组件、工具、框架大全
    安卓开发过程中空指针的问题Java.lang.NullPointerException
    闪屏页面开发遇到的问题you need to use a theme.appcompat theme (or descendant)
    8、杂散性问题
  • 原文地址:https://www.cnblogs.com/Lance-WJ/p/12575536.html
Copyright © 2020-2023  润新知