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


    本文内容皆为作者原创,如需转载,请注明出处: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)
    
  • 相关阅读:
    Java8新特性一览表
    FastDFS 单机部署指南
    EntityManager的Clear方法的使用
    元类
    python中的函数的分类
    python中的多任务
    正则表达式
    GIL和copy
    文件管理
    logging日志模块配置
  • 原文地址:https://www.cnblogs.com/xuexianqi/p/12573219.html
Copyright © 2020-2023  润新知