python中的lambda表达
C++中的lambda表达式与C++11增加标准库,是一个简短的匿名的可调用对象,编译器会将其转化为一个匿名类的对象。lambda表达式的最大特点就是简短灵活。调用方便。它不须要处理非常复杂的逻辑。通常仅仅包括一两句简短的代码。
python作为一种优雅简洁的脚本语言自然不会错过这样的机制。python中的lambda表达式形式例如以下:
lambda 參数列表 : 表达式
假设没有须要传递的參数,參数类表能够为空了,但表达式部分不能为空,由于lambda表达式必须有返回值。
lambda表达式会返回一个值,这个值能够是一个计算结果。也能够是一个新的lambda表达式
返回一个值:
>>> f = lambda x,y : x+y //创建一个lambda表达式
>>> print f(1, 2) //调用lambda表达式
3
返回一个新的lambda表达式:
>>> f = lambda x : lambda y : x+y //嵌套的lambda表达式
>>> a = f(1) //f(1)返回一个lambda表达式
>>> b = a(10)
>>> print b
11
以下看看常常与lambda表达式一起使用的三个python内建函数:filter,map,reduce
1、filter(bool_func,seq):遍历列表seq中的每一个元素,传入返回值为bool类型的函数bool_func中,从列表中过滤出函数返回值为true的元素,得到一个新的列表
<span style="font-size:10px;">>>> filter(lambda x : x > 3, [1, 2, 3, 4, 5])
[4, 5]</span>
2、map(func,seq1[,seq2...]):将列表通过func函数映射为一个新的列表
>>> map(lambda x : x*2, [1, 2, [3, 4]])
[2, 4, [3, 4, 3, 4]]
3、reduce(func,seq[,init]):这里的func函数接受两个參数,reduce依次从seq中取一个元素传入func函数。还有一个參数是上一次func函数的返回值。第三个參数为可选參数,假设指定了init,则開始时将init和seq中的第一个元素传给func;假设没有指定。则開始时取seq的头两个元素给func。
<span style="font-size:10px;">>>> reduce(lambda x,y : x + y,[1,2,3,4])
10
>>> reduce(lambda x,y : x + y,[1,2,3,4],10)
20 </span>
python中的lambda表达的更多相关文章
- 【转】python中的lambda函数
http://www.cnblogs.com/coderzh/archive/2010/04/30/python-cookbook-lambda.html lambda函数也叫匿名函数,即,函数没有具 ...
- 在Python中使用lambda高效操作列表的教程
在Python中使用lambda高效操作列表的教程 这篇文章主要介绍了在Python中使用lambda高效操作列表的教程,结合了包括map.filter.reduce.sorted等函数,需要的朋友可 ...
- 关于Python中的lambda
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...
- Python中的lambda函数介绍
Lambda函数,即Lambda 表达式(lambda expression),是一个匿名函数(不存在函数名的函数),Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lam ...
- 转:关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...
- python中的lambda知多少!
python允许使用lambda关键字创造匿名函数,匿名函数是因为不需要以标准的方式来声明,比如说,使用def语句.(除非赋值给一个局部变量,这样的对象也不会再任何的名字空间内创建名字)然而,作为函数 ...
- python中的lambda表达式
lambda是python中匿名函数的写法 我们可以在不定义函数名的情况下一边定义并调用这个函数 例子: 普通方法定义函数:def plus(a,b): return a+b lambda方法 ...
- python 中: lambda
lambda 定义了一个匿名函数,是代码更简洁 lambda x:x+1和def g(x): return x+1是相同的哦. python 中的map,filter, reduce 函数为序列内置函 ...
- Python中的lambda的简单介绍
在学习python的过程中,lambda的语法经常出现,现在将它整理一下,以备日后查看. 1.lambda是什么? 举个例子如下: func=lambda x:x+1 print(func(1)) p ...
随机推荐
- 最浅显、易懂的Linux 硬链接与软链接的理解
正文: Linux上的文件可以这么理解:文件-->文件名.文件是一个Object,也就是磁盘上的二进制数据.一个文件可以有多个文件名,平时我们都是通过文件名访问文件Object. 这样,硬链接可 ...
- Emily姨妈家的猫
按书上的样例,慢慢理解. 其实,JAVASCRIPT也应该可以写出正规点的,封装性好的代码. <html> <body> <script type="text/ ...
- Qt的事件模型(5种使用办法,通常重新实现event handler即可。只有定义控件才需要管理信号的发射)
Qt的事件模型 1.事件的概念 应用程序对象将系统消息接收为 Qt 事件.应用程序可以按照不同的粒度对事件加以监控.过滤并做出响应. 在 Qt 中,事件是指从 QEvent继承 的对象.Qt将事件发送 ...
- linux操作Oracle导入导出dmp数据命令
--清空该表数据 :非索引清空TRUNCATE TABLE GE_INTERFACE_MESSAGE; --数据库导出 指定导出某个用户的所有数据 包括表 索引 序列 存储过程 函数 等exp CX ...
- 为web服务器设置HttpOnly防范XSS攻击
HttpOnly标识是一个可选的.避免利用XSS(Cross-Site Scripting)来获取session cookie的标识.XSS攻击最常见一个的目标是通过获取的session cookie ...
- 英语之路 zt
各位为英语而郁闷的兄弟姐妹们: 自从考完GRE和TOEFL以后,心有所感,本想写点心得,但是因为太懒没写成.今日风雨如晦,心中又有所感,于是一舒笔墨,写下我学英语的方法.俺知道有很多兄弟姐妹们和曾经的 ...
- No setter found for property 'userDAO' in class 'com.ssh.service.impl.User1Service'
造成此问题的原因是: 在applicationContext.xml中引用 <bean id="userService" class="com.ssh.servic ...
- 是否存在两个树的和是固定数 hashmap使用 leecode
two sum https://oj.leetcode.com/submissions/detail/8220548/ public class Solution { public int[] two ...
- iw命令
iwconfig这个老工具已不推荐使用,iw支持大多新的设备并已被加入内核 iw help 查看帮助 iw dev wlan0 scan ...
- Codevs 3286 火柴排队 2013年NOIP全国联赛提高组 树状数组,逆序对
题目:http://codevs.cn/problem/3286/ 3286 火柴排队 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : ...