• day11.2lambda函数表达式 及其返回值注意事项


    lambda表达式

    用于表示简单的函数

    func1=lambda 参数:一句话函数体(默认返回函数体内执行的内容)
    

    1.1结构

    func=lambda a1,a2 : a1+100
    val=func(1,2)
    print(val)
    #返回101
    #不可变类型变化后形成新的字符串-->lambda内部默认返回执行后的值
    
    #原理类似:
    def func(a1,a2):
      return a1+100
    

    1.2参数变化(0个到多个)

    func1=lambda :100#可不写
    func2=lambda a1:a1*10
    func3=lambda *args,**kwargs:len(args)+len(kwargs)
    
    
    

    1.3参数变量规则

    • lambda内部不能创建变量,只能调用自己的形参
    • 和函数查找规则一样优先自己=—>父级查找—>全局
    DATA=100
    func4=lambda a1:a1+DATA
    v=func4(1)
    print(v)#101
    
    DATA=100
    def func():
      DATA=1000
    	func4=lambda a1:a1+DATA
    	v=func4(1)
    	print(v)#1001
    func()
    

    1.5和三元运算符的结合

    func5=lambda n1,n2:n1 if n1>n2 else n2
    v=func5(111,2)
    print(v)
    

    1.4函数体内返回值注意事项

    • 不可变数据类型的方法会有返回值,因为原始数据不能修改,只能形成一个新的值

    • 可变类型的方法【基本】不会形成新的数据,只会在原始数据上修改,所以这些方法只有默认None返回值

    • 但是集合中的集合运算(交并集等),会形成新的数据 即就是会有返回值

    #可变类型
    info=[]
    def func(X):
      v=info.append(X)
      return v
    print(func("gao"))
    #None
    #split/intersection/union 等同理
    
    #不可变类型
    def func1(x):
      v=x.strip()
      return v
    print(func("gao  "))#gao  没有空格
    
    #练习
    func1=lambda info:info.split("a")
    print(func1("gao"))#["g","o"]
    
    #练习
    info=[]
    func1=lambda info:info.append("a")
    print(func1("gao"))#None
    
    
    
    
    info=[]
    func4=lambda a1:info.append(a1)
    print(func4(4))
    #None
    

    1.5 列表中的lambda函数表达式

    func_list=[lambda x:x.strip(),lambda y:y+199,lambda x,y:x+y]
    print(func_list[0]("gao  "))#gao
    print(func_list[1](1))#200
    
    12看代码写结果
    
    def func():
        num = 10
        v4 = [lambda :num+10,lambda :num+100,lambda :num+100,]
        for item in v4:
            print(item())
    func()
    #20
    #110
    #110
    
  • 相关阅读:
    inotify事件监控
    NFS网络文件共享服务
    Rsync数据同步服务
    SSH连接原理及ssh-key讲解
    C语言I博客作业04
    C语言l博客作业03
    C语言I博客作业02
    定义一个计算字符串高度的方法
    字典转模型
    UIScrollView和UIPageControl
  • 原文地址:https://www.cnblogs.com/koukouku/p/10692066.html
Copyright © 2020-2023  润新知