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

day11.2lambda函数表达式 及其返回值注意事项的更多相关文章

  1. [Golang]-3 函数、多返回值、变参、闭包、递归

    // test01 project main.go package main import ( "fmt" ) // 单返回值的函数 func plus(a int, b int) ...

  2. 【C语言入门教程】5.1 函数说明 与 返回值

    C 语言是结构化语言,它的主要结构成分是函数.函数被作为一种构件,用以完成程序中的某个具体功能.函数允许一个程序的各个任务被分别定义和编码,使程序模块化.本章介绍 C 语言函数的设计,如何用函数分解程 ...

  3. 关于fork( )函数父子进程返回值的问题

    fork()是linux的系统调用函数sys_fork()的提供给用户的接口函数,fork()函数会实现对中断int 0x80的调用过程并把调用结果返回给用户程序. fork()的函数定义是在init ...

  4. linux shell自定义函数(定义、返回值、变量作用域)介绍

    http://www.jb51.net/article/33899.htm linux shell自定义函数(定义.返回值.变量作用域)介绍 linux shell 可以用户定义函数,然后在shell ...

  5. C++ 需要返回值的函数却没有返回值的情况 单例模式

    昨天在看前些天写的代码,发现一个错误. #include <iostream> using namespace std; class singleton { public: static ...

  6. 函数指针的返回值是指针数组,数组里放的是int;函数指针的返回值是指针数组,数组里放的是int指针

    函数指针的返回值是指针数组,数组里放的是int 函数指针的返回值是指针数组,数组里放的是int指针 #include <stdio.h> #include <stdlib.h> ...

  7. python函数进阶(函数参数、返回值、递归函数)

    函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形 ...

  8. C语言中赋值表达式的返回值是什么?

    我们或多或少都有过,或者见过将赋值表达式参与运算的情况.这通常会伴随着一些意想不到的问题.今天我就见到了一段奇怪的代码: #include<stdio.h> int main() { ; ...

  9. 9 - Python函数定义-位置参数-返回值

    目录 1 函数介绍 1.1 为什么要使用函数 1.2 Python中的函数 2 函数的基本使用 3 函数的参数 3.1 参数的默认值 3.2 可变参数 3.2.1 可变位置传参 3.2.2 可变关键字 ...

随机推荐

  1. S2T40,第四章,简答5

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. C# [GDI+] [API] Get Image bytes Length

    MemoryBMP "{b96b3caa-0728-11d3-9d7b-0000f81ef32e}" 2 Bmp "{b96b3cab-0728-11d3-9d7b-00 ...

  3. font awesome 页面小图标

    font awesome 页面小图标 前段时间做页面,从网上查找资料,发现了一个好用的工具,就是font awesome奥森图标,使用了一下,发现非常方便,而且很灵活,纯css编写,可以和bootst ...

  4. c#基础之异常处理及自定义异常

    一.什么是c#中的异常? 异常是程序运行中发生的错误,异常处理是程序的一部分.c#中的异常类主要是直接或者间接的派生于 System.Exception类 ,也就是说System.Exception类 ...

  5. leetcode python 033 旋转数组查找

    ## 假设升序,import random def find(y):    l,m=len(y),0    while l>1:        n=int(l/2)        if y[0] ...

  6. using Newtonsoft.Json;

    using Newtonsoft.Json;    //数组转义为json  string result = JsonConvert.SerializeObject(list1);   //josn转 ...

  7. SQL-50 将employees表中的所有员工的last_name和first_name通过(')连接起来

    题目描述 将employees表中的所有员工的last_name和first_name通过(')连接起来.CREATE TABLE `employees` (`emp_no` int(11) NOT ...

  8. springboot 热部署

    1 pom文件添加 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  9. Java 平时作业三

    自定义一个可以存储 int 类型的集合类(例如:SequenceList),封装一维数组存储数据,该 集合类具有以下方法: (1)新增元素: (2)在指定位置插入一个元素: (3)按位置删除元素: ( ...

  10. hive lock命令的使用

    1.hive锁表命令 hive> lock table t1 exclusive;锁表后不能对表进行操作 2.hive表解锁: hive> unlock table t1; 3.查看被锁的 ...