• 匿名函数


    匿名函数

    什么是匿名函数

    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))

     

  • 相关阅读:
    Python3学习之路~0 目录
    HIVE简单操作
    HIVE的安装
    mysql在linux上的安装
    BZOJ 1085(IDA*)
    Codeforces 916E(思维+dfs序+线段树+LCA)
    Codeforces 396C (DFS序+线段树)
    Codeforces 609E (Kruskal求最小生成树+树上倍增求LCA)
    Codeforces 191C (LCA+树上差分算法)
    POJ 1905 题解(二分+几何)
  • 原文地址:https://www.cnblogs.com/msj513/p/9768391.html
Copyright © 2020-2023  润新知