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

    匿名函数

    什么是匿名函数

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

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

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

    为何要使用匿名函数

    强调:

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

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

    应用:

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

    如何使用匿名函数

    lambda x,y:x+y

    匿名函数常用的使用情况

    salaries = {
       'egon': 3000,
       'alex': 100000000,
       'wupeiqi': 10000,
       'yuanhao': 2000
    }

    max函数

    print(max(salaries,key=lambda x:salaries[x]))

    key = 后面接的是匿名函数,这个匿名函数使用定义比较的大小的对象。

    max()的参数接受的是可迭代对象,

    结果就是返回,比较工资的大小,返回名字。

    sorted排序

    print(sorted(salaries,key=lambda k:salaries[k]))
    print(sorted(salaries,key=lambda k:salaries[k],reverse=True))

    key排序规则,reverse排序方式,默认False正序 True反序(从大到小)

    names = ['alex', 'wupeiqi', 'yuanhao', 'kevin', 'hu老师']

    map函数映射

    res = map(lambda x: x + 'dsb', names)

    map映射,对可迭代对象的元素进行操作,得到map对象也是一个可迭代对象,func参数使用匿名使用一次的。

    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'],'----------'))

    reduce就是将可迭代对象合并在一起

    filter函数筛选

    res=filter(lambda name:name.endswith('sb'),names)
    print(res)
    print(list(res))

     

  • 相关阅读:
    GridView 应用貌似是个mm写的,值得尊敬!
    .net 时间函数
    .net 获取url的方法
    SaveGraphics
    asp网站页面上都是问号
    由于编码方式导致CSS样式表失效
    .net url乱码
    常用正则表达式
    解决realse版在加载toolbar后不正常退出的现象
    general error c1010070: Failed to load and parse the manifest
  • 原文地址:https://www.cnblogs.com/msj513/p/9768391.html
Copyright © 2011-2022 走看看