• Python3.x基础学习-函数用法(三)


    前言:

    在定义函数的时候,不想给函数起一个名字。这个时候就可以用 lambda 来定义 一个匿名函数

    使用方法:

    语法:变量名= lambda 参数:表达式

    注意:
    1.表达式中不能包含 循环,return
    2.可以包含 if...else...语句.
    3.表达式计算的结果直接返回"""

    #1.创建匿名函数,无参数
    
    x = lambda :3<2
    print(x)
    # <function <lambda> at 0x00000153EA9E2EA0>
    print(x())
    # False
    
    #2.传递多个参数
    #计算两个参数的和
    
    ret = lambda x,y:x+y
    print(ret(5,10))
    # 15
    
    #返回参数中较小的那个数
    # def func(x,y):
    #     if x<y:
    #         return x
    #     else:
    #         return y
    # print(func(3, 5))
    #改为匿名函数
    
    ret = lambda x,y:x if x<y else y
    print(ret(1,2))
    # 1
    
    #使用max()函数求字典的最大值
    dic = {'k1':10,'k2':30,'k3':20}
    # def func(k):
    #     return dic[k]
    # print(max(dic,key=func))
    
    ret = max(dic,key=lambda k:dic[k])
    print(ret)
    # k2
    
    #使用max()函数,找出年龄最大的那组信息
    lst = [
        [1001,'zs',20], #学号,姓名,年龄
        [1002,'ss',25],
        [1003,'ww',28],
    ]
    
    print(max(lst,key= lambda x:x[:][2]))
    # [1003, 'ww', 28]
    
    
    #求列表中每个元素的平方值
    lst = [1,2,3]
    
    lst1 = [1,2,3,4,5,6,7,8]
    lst2 = [2,3,4,5,6]
    
    print(list(map(lambda x:x*x,lst)))
    # [1, 4, 9]
    print(list(map(lambda x,y:x*y,lst1,lst2)))
    # [2, 6, 12, 20, 30]
    
    #过滤列表中的所有奇数
    lst = [1,2,3,4,0,5,6,7,8,9]
    
    print(list(filter(lambda x:x%2==1 ,lst)))
    # [1, 3, 5, 7, 9]
    
    tup1 = ('a','b')
    tup2 = ('c','d')
    # #生成[{'a':'c'},{'b':'d'}]
    #使用zip()变为元组(a,c),(b,d)
    #定义匿名函数将传递的参数组成字典
    #使用map()变为字典
    #讲map()对象转化为列表
    
    print(list(zip(tup1,tup2)))
    # [('a', 'c'), ('b', 'd')]
    
    print(list(map(lambda x:{x[0]:x[1]},zip(tup1,tup2))))
    # [{'a': 'c'}, {'b': 'd'}]
    
    
    def func():
        x = 4
        def action(n):
            print(x**n)
        return action #返回的是函数的引用,并没有调用函数
    ret = func() #此时ret是函数action的引用
    ret(2)
    # 16
    
    # 将action改为匿名函数
    
    def func():
        x=4
        return lambda n:x**n
    print(func()(2))
    
    #传递默认参数
    def func():
        x = 4
        def action(n,x1=x):
            print(x1**n)
        return action #返回的是函数的引用,并没有调用函数
    ret = func() #此时ret是函数action的引用
    ret(2)
    # 16
    
    
    def func():
        x=4
    
        return lambda n,x1=x:x1**n
    
    print(func()(2))
    # 16
    
    def makeAction():
        acts=[]
        for i in range(5):
            acts.append(lambda x:i**x)
        return acts
    
    x = makeAction()
    print(x[4](3))
    # 64
     
  • 相关阅读:
    原型设计 + 用户规格说明书
    第三次作业
    MathExam第二次作业
    第一次随笔
    冲鸭第一的合作
    功能规格说明书
    测试与优化
    结对编程
    高分小学计算器
    现实与梦
  • 原文地址:https://www.cnblogs.com/johnsonbug/p/12701447.html
Copyright © 2020-2023  润新知