zoukankan      html  css  js  c++  java
  • 匿名函数

    匿名函数

    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)

    思维导图(点击链接

  • 相关阅读:
    洛谷 P1195 口袋的天空
    洛谷 P3144 [USACO16OPEN]关闭农场Closing the Farm_Silver
    Bzoj3277 串
    Bzoj1312 / POJ3155 Neerc2006 Hard Life
    Bzoj2655 calc
    51Nod 1228 序列求和
    洛谷P2901 [USACO08MAR]牛慢跑Cow Jogging
    Bzoj1042 [HAOI2008]硬币购物
    Bzoj3884 上帝与集合的正确用法
    Bzoj4161 Shlw loves matrixI
  • 原文地址:https://www.cnblogs.com/zhww/p/12983981.html
Copyright © 2011-2022 走看看