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)

    思维导图(点击链接

  • 相关阅读:
    python 前置程序窗口,还原最小化的窗口
    GreenDao官方文档翻译(上)
    Android 使用Instrumentation进行界面的单元测试
    Android:View中的performClick()触发条件
    Java 单元测试(Junit)
    再看薄荷
    单例模式-Singleton
    Java 如何防止线程意外中止
    Java Error和Exception区别
    linux的进程1:rootfs与linuxrc
  • 原文地址:https://www.cnblogs.com/zhww/p/12983981.html
Copyright © 2011-2022 走看看