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

    1.什么是匿名函数

      def定义的是有名函数:特点是可以通过名字重复调用

        def func():#func=函数的内存地址

          pass

      匿名函数就是没有名字的函数:特点是只能在定义时使用一次

    2.为何要用匿名函数

      强调:

        匿名函数的定义就相当于只产生一个变量值,而没有绑定任何名字,

        所以会在定义完之后就被回收,无法重复使用,只能在定义时使用一次

      应用:当某一个功能仅使用一次就没有再重复使用的必要了,就应该定义成匿名函数

    3.如何用匿名函数

    max:

    salaries={'egon':3000,
              'lii':5000,
              'yyh':10000}
    
    
    取最大值:
    print(max(salaries,key=lambda k:salaries[k]))
    取最小值
    print(min(salaries,key=lambda k:salaries[k]))
    View Code

    sorted排序:

    salaries={'egon':3000,
              'lii':5000,
              'yyh':10000}
    
    
    从小到大
    print(sorted(salaries,key=lambda k:salaries[k]))
    从大到小
    print(sorted(salaries,key=lambda k:salaries[k],reverse=True))
    View Code

    map:

    names = ['alex', 'wupeiqi', 'yuanhao', 'kevin', 'hu老师']
    
    列表生成式:
    new_names=[name + 'sb' for name in names]
    print(new_names)
    
    map+匿名函数:
    res = map(lambda x :x+'sb',names)
    print(list(res))
    View Code

    reduce:

    from functools import reduce
    print(reduce(lambda x,y:x+y,[i for i in range(101)]))
    print(reduce(lambda x,y:x+y,['h','e','l','l','o'],'----------'))
    View Code

    filter:筛选

    names = ['alex_dsb', 'wxx_sb', 'kevin_sb', 'hu_sb', 'egon']
    
    new_names = [name for name in names if name.endswith('sb')]
    print(new_names)
    View Code
  • 相关阅读:
    如何在Eclipse中显示行号
    最值得听的100首英文歌
    ffmpeg示例一:源码
    编码解码中常用术语二
    ffmpeg.c(ffmpeg.exe)调试笔记一
    Debug ffmpeg.c & ffmpeg_g.exe in Ubuntu with Eclipse
    ubuntu下编译ffmpeg with libx264
    利用ffmpeg切割与合并视频(一)调用ffmpeg程序直接切割
    VMWare安装Ubuntu 12.10无法开启虚拟机的Unity Mode模式
    Atitit.基于dsl的methodinvoker
  • 原文地址:https://www.cnblogs.com/xiamenghan/p/9767578.html
Copyright © 2011-2022 走看看