匿名函数

匿名函数:为了解决一些功能很简单的需求而设计的一句话函数 (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. Mac上面不能安装Homebrew

    这个stackoverflow的答案解决了我的问题: http://stackoverflow.com/questions/18039029/mac-can-t-install-homebrew 问题 ...

  2. Oracle 11g r2 Enterprise Manager (EM) 中文页面调整为英文页面

    Oracle 11g r2 Enterprise Manager (EM) 在中文语言环境下, 部分功能(如包含时间的查询数据库实例: orcl  >  指导中心  >  SQL 优化概要 ...

  3. java访问数据库步骤详解

    eg1: public static void main(String[] args) throws ClassNotFoundException, SQLException { //第一步:加载JD ...

  4. java中异常处理finally和return语句的执行顺序

    finally代码块的语句在return之前一定会得到执行 如果try块中有return语句,finally代码块没有return语句,那么try块中的return语句在返回之前会先将要返回的值保存, ...

  5. Angularjs 实现 $(document).ready()的两种方法

    1.在controller里面利用$on或者$watch bookControllers.controller('bookctrl_test', ['$scope', '$routeParams', ...

  6. HDU 5381 The sum of gcd (技巧,莫队算法)

    题意:有一个含n个元素的序列,接下来有q个询问区间,对每个询问区间输出其 f(L,R) 值. 思路: 天真单纯地以为是道超级水题,不管多少个询问,计算量顶多就是O(n2) ,就是暴力穷举每个区间,再直 ...

  7. COGS 886. [USACO 4.2] 完美的牛栏

    ★★☆   输入文件:stall4.in   输出文件:stall4.out   简单对比时间限制:1 s   内存限制:128 MB USACO/stall4(译by Felicia Crazy) ...

  8. H3C S5024P交换机 vlan实验

    H3C S5024P交换机第二次vlan实验 实验1 与交换机端口G0/1和G0/2相连的PC1与PC2属于VLAN 1,与G0/3和G0/4相连的PC3和PC4属于VLAN 2,PC1.PC2.PC ...

  9. js 数组过滤 filter

    let res = this.list.filter(item => routeEqual(this.currentRouteObj, item) || item.name === this.$ ...

  10. python爬虫---从零开始(一)初识爬虫

    我们开始来谈谈python的爬虫. 1,什么是爬虫: 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫.互联网犹如一个大蜘蛛 ...