匿名函数

匿名函数:为了解决一些功能很简单的需求而设计的一句话函数 (python对匿名函数支持有限,只有一些简单的条件下可以用匿名函数)

匿名函数固定格式:

func = lambda *args: args**2            #func:函数名    lambda:关键字     args:参数    args**2:返回值(参数的平方运算)

示例:

def func(n):
return n*2
print(func(5)) #
等价于:
func = lambda n:n*2 #匿名函数,又叫 lambda表达式
print(func(5)) #

匿名函数能和 三元表达式,列表推导式,生成器表达式 一起用

func1 = lambda n: True if n > 5 else False   # 匿名函数+三元表达式
print(func1(4)) #False func2 = lambda : [i for i in range(10)] # 匿名函数+列表推导式
print(func2())
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] func3 = lambda : (i for i in range(10)) # 匿名函数+生成器表达式
print(list(func3())) # func3是生成器,强制list()取值
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

匿名函数和 map(),filter(),soted(),max(),min() 一起用

字典:拿到最大值的键 

dic = {'k1':10,'k2':100,'k3':30}

func = lambda key: dic[key]          # 返回键的值
t = max(dic,key=func) # dic等价于['k1','k2','k3'] key=func()拿到每个key的值,用值对比
#max(dic,key=lambda k:dic[k]) # 可以直接把匿名函数写成这样 (max() + lambda匿名函数)
print(t) # k2
想当于:
def func(key):
return dic[key]
a = max(dic,key=func) # max([-5,2,-4,3],key=abs)
print(a) # k2
------------ a = (map(lambda n: n**2,[1,2,3,4])) #lambda 匿名函数+ map()
print(list(a)) #[1, 4, 9, 16]
--------- ((('a'),('b')),(('c'),('d'))) 用匿名函数写成[{'a': 'c'}, {'b': 'd'}]
((('a'),('b')),(('c'),('d'))) # 等价于 (('a','b'),('c','d')) print(('a') == 'a') True
r = zip(('a','b'),('c','d')) # [('a', 'c'), ('b', 'd')]
t = map(lambda n: {n[0]:n[1]},r) # n 是 r 中的元组元素
print(list(t)) # [{'a': 'c'}, {'b': 'd'}]

匿名函数--lambda函数的更多相关文章

  1. Python新手学习基础之函数-lambda函数

    lambda函数 在Python里除了用def定义函数外,还有一种匿名函数,也就是标题所示的lambda函数,它是指一类无需定义标识符(函数名)的函数或子程序. lambda函数的使用语法如下: la ...

  2. 10. 函数-lambda函数及高阶函数

    一.匿名函数解析 ​ 关键字lambda表示匿名函数,冒号前面的n表示函数参数,可以有多个参数.匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. ​ 用匿名函数有 ...

  3. C++11—lambda函数

    [1]lambda表达式语法定义 lambda表达式的语法定义如下: [capture] (parameters) mutable ->return-type {statement}; (1) ...

  4. python学习笔记12(函数三): 参数类型、递归、lambda函数

    一.函数参数的类型 之前我们接触到的那种函数参数定义和传递方式叫做位置参数,即参数是通过位置进行匹配的,从左到右,依次进行匹配,这个对参数的位置和个数都有严格的要求.而在Python中还有一种是通过参 ...

  5. 初窥c++11:lambda函数及其用法

    转载于:点击打开链接 为什么需要lambda函数 匿名函数是许多编程语言都支持的概念,有函数体,没有函数名.1958年,lisp首先采用匿名函数,匿名函数最常用的是作为回调函数的值.正因为有这样的需求 ...

  6. Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数

    Python第七天   函数  函数参数   函数里的变量   函数返回值  多类型传值     函数递归调用   匿名函数   内置函数 目录 Pycharm使用技巧(转载) Python第一天   ...

  7. Python基础总结之认识lambda函数、map函数、filter() 函数。第十二天开始(新手可相互督促)

    今天周日,白天在学习,晚上更新一些笔记,希望对大家能更好的理解.学习python~ lambda函数,也就是大家说的匿名函数.它没有具体的名称,也可以叫做一句话函数,我觉得也不过分,大家看下代码,来体 ...

  8. lambda函数小结

    C++中的lambda函数 lambda函数是函数式编程中的概念,由C++11引入,成为现代C++中重要的特性. 所谓lambda函数就是匿名函数,语法结构: [capture list] (para ...

  9. Lambda函数到底是个什么

    1 什么是Lambda函数 lambda函数是指简单的代码片段,通常认为是不值得命名的函数,它不能重复使用,能方便程序员使用,增强代码可读性,降低代码出错概率. [ 捕获列表 ] (参数) -> ...

随机推荐

  1. PMP项目管理学习笔记(7)——整合管理之指导和管理项目执行过程

    过程剖析 输入:组织过程资产.企业环境要素.项目管理计划.批准的变更请求 工具:专家判断.项目管理信息系统 输出:工作绩效信息.可交付成果.变更请求.项目文档和计划更新 指导和管理项目执行过程包括: ...

  2. (转)使用CGLIB实现AOP功能与AOP概念解释

    http://blog.csdn.net/yerenyuan_pku/article/details/52864395 使用CGLIB实现AOP功能 在Java里面,我们要产生某个对象的代理对象,这个 ...

  3. Dart开发环境搭建

    一.SDK的安装与环境配置 1. 下载Dark SDK http://www.gekorm.com/dart-windows/ 2.  安装SDK 3.  配置环境变量(一般已经默认生成好了,这里可以 ...

  4. OpenCV2:第四章 导出图像

    一.简介 一般我们用OpenCV来处理图像数据的时候,OpenCV已经把图像数据包装成一个图像数据类,我们只需要对类成员的像素值进行修改就行了. 但是在Windows开发的WinSDK/MFC中,对图 ...

  5. ubuntu 18.04 start myproject

    #!/bin/bash now=$(date +%Y%m%d) cmd='/home/hu/go/src/github.com/coredns/coredns/coreserver -conf /ho ...

  6. SQL比较两表字段和字段类型

    一.问题 业务需要把TB_Delete_KYSubProject表数据恢复到TB_KYSubProject,但提示错误,错误原因是两表字段类型存在不一致 insert into [TB_KYSubPr ...

  7. luogu 1113 杂务--啥?最长路?抱歉,我不会

    P1113 杂务 题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它.比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作.尽早将所有杂务 ...

  8. CF550 DIV3

    A - Diverse Strings CodeForces - 1144A A string is called diverse if it contains consecutive (adjace ...

  9. 配置c3p0-config.xml数据库连接池,jdbcurl配置项报错Type The reference to entity "useUnicode" must end with the ';' delimiter.

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml> <c3p0-confi ...

  10. POI导出,开发中经常会遇到数据导出这样的问题,下面是我在开发中采用的解决方法,大家可以参考,具体的实现害的结合你自身的业务逻辑

    @RequestMapping(value = "/drawPayFailExport",method = RequestMethod.GET,produces = "a ...