美文网首页
12_Python匿名函数_全栈开发学习笔记

12_Python匿名函数_全栈开发学习笔记

作者: 豆行僧 | 来源:发表于2019-01-22 10:57 被阅读0次

    1. 匿名函数介绍

    #这段代码
    def calc(n):
        return n**n
    print(calc(10))
     
    #换成匿名函数
    calc = lambda n:n**n
    print(calc(10))
    
    函数名 = lambda 参数 :返回值
    
    #参数可以有多个,用逗号隔开
    #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
    #返回值和正常的函数一样可以是任意数据类型
    

    2. 将函数转换为匿名函数

    练习1:
    请把以下函数变成匿名函数

    def add(x,y):
        return x+y
    

    答案:

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

    执行结果:

    3
    

    练习2:
    跟据value的最大值,显示对应的key

    dic = {"k1":10,"k2":100,"k3":30}
    def func(key):
        return dic[key]
    print(max(dic,key=func))    #根据返回值判断最大值,返回值最大的那个参数是结果
    

    执行结果:

    k2
    

    将上述改为匿名函数:

    dic = {"k1":10,"k2":100,"k3":30}
    print(max(dic,key=lambda k:dic[k]))
    

    执行结果:

    k2
    

    练习3:

    def func(x):
        return x>10
    
    res = filter(func,[5,8,11,9,15])
    for i in res:
        print(i)
    

    执行结果:

    11
    15
    

    改成匿名函数:

    res = filter(lambda x:x>10,[5,8,11,9,15])
    for i in res:
        print(i)
    

    执行结果:

    11
    15
    

    练习4:
    计算列表中每个数字的平方

    def func(x):
        return x**2
    ret = map(func,[-1,2,-3,4])
    for i in ret:
        print(i)
    

    执行结果:

    1
    4
    9
    16
    

    改成匿名函数

    ret = map(lambda x:x**2,[-1,2,-3,4])
    for i in ret:
        print(i)
    

    执行结果:

    1
    4
    9
    16
    

    3. 适合改成匿名函数的几个内置函数

    min max filter map sorted —— lambda
    匿名函数等于内置函数

    相关文章

      网友评论

          本文标题:12_Python匿名函数_全栈开发学习笔记

          本文链接:https://www.haomeiwen.com/subject/mrhljqtx.html