Python中的lambda、map和filter
翻译、修改自https://medium.com/@happymishra66/lambda-map-and-filter-in-python-4935f248593
1、lambda
lambda运算符或lambda函数用来在Python中创建小的、一次性的匿名函数对象。
基本语法如下:
lambda arguments: expression
lambda运算符可以有多个参数,但只能有一个表达式。它不能包含任何语句,它返回一个可以分配给任何变量的函数对象。
例子1:
add=lambda x,y:x+y
add(2,3)
#输出 5
大多数lambda函数作为参数传递给一个函数,该函数需要一个函数对象作为参数,如map,reduce,filter函数
2、map
基本语法如下:
map(function_object, iterable1, iterable2, ...)
map函数需要一个函数对象和任意数量的iterables,如list,dictionary等。它为序列中的每个元素执行function_object,并返回由函数对象修改的元素列表。
例子2:
def multiply(x):
return x*2
list(map(multiply,[1,2,3,4]))
#返回 [2,4,6,8]
以上例子可以用map和lambda函数结合用一行写好:如下
list(map(lambda x : x*2, [1, 2, 3, 4]))
#输出 [2, 4, 6, 8]
例子3:使用map和lambda在字典上迭代
dict_a = [{'name': 'python', 'points': 10}, {'name': 'java', 'points': 8}]
list(map(lambda x : x['name'], dict_a)) # Output: ['python', 'java']
list(map(lambda x : x['points']*10, dict_a)) # Output: [100, 80]
list(map(lambda x : x['name'] == "python", dict_a)) # Output: [True, False]
例子4:也可以传给map多个序列:
ist_a = [1, 2, 3]
list_b = [10, 20, 30] list(map(lambda x, y: x + y, list_a, list_b)) # Output: [11, 22, 33]
以上不加list的话只能返回map对象,我们既不能使用索引访问map对象的元素,也不能使用len()来查找map对象的长度
3、filter
基本语法:
filter(function_object, iterable)
filter函数需要两个参数,function_object和iterable。 function_object返回一个布尔值。 为iterable的每个元素调用function_object,filter只返回function_object返回true的元素。
a = [1, 2, 3, 4, 5, 6]
list(filter(lambda x : x % 2 == 0, a)) # Output: [2, 4, 6]
dict_a = [{'name': 'python', 'points': 10}, {'name': 'java', 'points': 8}]
list(filter(lambda x : x['name'] == 'python', dict_a)) # Output: [{'name': 'python', 'points': 10}]
与map类似,Python3中的filter函数返回一个filter对象或lazily evaluated的迭代器。 我们既不能使用索引访问filter对象的元素,也不能使用len()来得到filter对象的长度。
-----------------------
END
Python中的lambda、map和filter的更多相关文章
- Python面试题之Python中的lambda map filter reduce zip
当年龟叔想把上面列出来的这些都干掉.在 “All Things Pythonic: The fate of reduce() in Python 3000”这篇文章中,他给出了自己要移除lambda. ...
- 全面了解Python中的特殊语法:filter、map、reduce、lambda。
这篇文章主要介绍了Python中的特殊语法:filter.map.reduce.lambda介绍,本文分别对这个特殊语法给出了代码实例,需要的朋友可以参考下filter(function, seque ...
- python 函数式编程之lambda( ), map( ), reduce( ), filter( )
lambda( ), map( ), reduce( ), filter( ) 1. lambda( )主要用于“行内函数”: f = lambda x : x + 2 #定义函数f(x)=x+2 g ...
- 【转】python中的lambda函数
http://www.cnblogs.com/coderzh/archive/2010/04/30/python-cookbook-lambda.html lambda函数也叫匿名函数,即,函数没有具 ...
- python中的lambda表达
C++中的lambda表达式与C++11增加标准库,是一个简短的匿名的可调用对象,编译器会将其转化为一个匿名类的对象.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基础知识]python内置函数map/reduce/filter
python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法) ...
随机推荐
- extjs经典form的submit()和ajax()
extjs 的submit: // 发送请求 this.formPanel.getForm().submit({ u ...
- cocos2dx错误收集
1.读取ccb文件onNodeLoaded调用两次的问题 不小心把cocosbuilder里的控件的Custom class里填了两次自定义类,如下: 结果在onNodeLoaded时调用了两次,结果 ...
- [转]UI、GUI、UE、UX、ID、UED、UCD的区别
UI (User Interface):用户界面 UE (User Experience):用户体验 ID (Interaction design):交互设计 UID (User Interface ...
- Oracle基础(三)数据库管理
上篇介绍了Oracle数据库的基本操作指令:增.删.改.查以下针对数据库的管理进行介绍 数据库角色介绍 数据管理员: 至少有一个数据库管理员dba. 职责:安装和升级oracel数据库 建库,表空间 ...
- java 线程之间的协作 wait()与notifyAll()
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlhbmdydWkxOTg4/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- flask os.environ 的作用
使用环境变量取值, 是为了增强系统的适应性, 在某些场景下, 设置环境变量比较方便. 假如, 你有一套代码, 部署在不同的系统中, 恰好这些系统有权限且很容易地设置环境变量, 那么, 这时候通过环境变 ...
- Xcode下开发c静态库for ios CPU架构 静态库合并
新建一个Cocoa Touch Static Library工程 1,先在工程左侧删除“工程名Tests”下的文件与文件夹(从内往外删,最后删除"工程名Tests文件夹") :D ...
- iOS开发中“此证书的签发者无效”的解决方式
iOS开发过程中有时候会出现证书所有变成无效,例如以下图 然后进行打包的时候会提演示样例如以下警告: 解决方法: 第一步: 下载https://developer.apple.com/certif ...
- const在指针中的用法
一.指向const对象的指针---对象不能修改 方式1 int value1 = 3; const int *p1 = &value1; *p1 = 5; //错误,不能修改const指向对象 ...
- Python程序的性能分析指南(转)
原文地址 :http://blog.jobbole.com/47619/ 虽然不是所有的Python程序都需要严格的性能分析,不过知道如何利用Python生态圈里的工具来分析性能,也是不错的. 分析一 ...