• 匿名函数



    # 有名函数:基于函数名重复使用
    def func():
    print('from func')

    func()
    func()
    func()


    # 匿名函数:没有绑定名字的下场是用一次就回收了
    def func(x,y): #func=函数的内存地址
    return x + y

    res=(lambda x,y:x+y)(1,2)
    print(res)

    f=lambda x,y:x+y # 给匿名函数赋值了,不符合定义
    print(f)
    print(f(1,2))

    重要的一些内置方法
    max min map filter sorted
    salaries={
    'egon':3000,
    'alex':100000000,
    'wupeiqi':10000,
    'yuanhao':2000
    }

    max的工作原理
    1 首先将可迭代对象变成迭代器对象
    2 res=next(迭代器对象),将res当作参数传给key指定的函数,然后将该函数的返回值当作判断依据
    def func(k):
    return salaries[k]

    print(max(salaries,key=func)) #next(iter_s)
    'egon', v1=func('egon')
    'alex', v2=func('alex')
    'wupeiqi', v3=func('wupeiqi')
    'yuanhao', v4=func('yuanhao')



    salaries={
    'egon':3000,
    'alex':100000000,
    'wupeiqi':10000,
    'yuanhao':2000
    }
    print(max(salaries,key=lambda k:salaries[k])) #next(iter_s) # 返回的还是字典的key,这点是不变的
    print(min(salaries,key=lambda k:salaries[k])) #next(iter_s)


    l=[10,1,3,-9,22]
    # l.sort() # 改变l的排序
    # print(l)
    sorted(l) # 不会改变原来l的排序
    print(l)
    l1=sorted(l,reverse=False) # 用sorted只能把排序赋值给新的变量,才能看出变化。可以看成是临时改变,
    print(l1)

    l2=sorted(l,reverse=True)
    print(l2)

    salaries={
    'egon':3000,
    'alex':100000000,
    'wupeiqi':10000,
    'yuanhao':2000
    }
    #
    print(lambda k:salaries[k])
    res = lambda k:salaries[k]

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

    names=['张明言','刘华强','苍井空','alex']

    map的工作原理
    1 首先将可迭代对象变成迭代器对象
    2 res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,然后将该函数的返回值当作map的结果之一
    aaa=map(lambda x:x+"_SB",names)
    print(aaa)
    print(list(aaa))

    print([name+"_SB" for name in names])

    filter的工作原理
    filter 过滤函数 符合条件的留下来
    1 首先将可迭代对象变成迭代器对象
    2 res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,然后filter会判断函数的返回值的真假,如果为真则留下res
    names=['alexSB','egon','wxxSB','OLDBOYSB']

    print([name for name in names if name.endswith('SB')])

    aaa=filter(lambda x:x.endswith('SB'),names)
    print(aaa)
    print(list(aaa))





  • 相关阅读:
    如何获取Apollo上项目下的所有namespace?
    从源码研究如何不重启Springboot项目实现redis配置动态切换
    用 Explain 命令分析 MySQL 的 SQL 执行
    MySQL死锁系列-常见加锁场景分析
    带你100% 地了解 Redis 6.0 的客户端缓存
    Java 数据持久化系列之 HikariCP (一)
    MySQL的死锁系列- 锁的类型以及加锁原理
    Java 数据持久化系列之池化技术
    Redis Cluster 的数据分片机制
    Redis 命令执行过程(下)
  • 原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9183726.html
Copyright © 2020-2023  润新知