Python filter,map,lambda,reduce,列表解析
filter用法 filter(func,seq)
将seq的元素逐一代入func,通过func的返回值来判断是保留还是过滤
>>> def foo(x):
return x>3 >>> filter(foo,range(6))
[4, 5]
>>> filter(lambda x:x>3,range(6))
[4, 5]
#注意只需要写函数名,不带参数
map用法map(func/lambda,seq)
通过函数对队列中的每个元素进行操作,元素替换成返回值,注意是生成一个新的序列,原来的序列不会变化
>>> map(lambda x:x*2,range(6))
[0, 2, 4, 6, 8, 10]
#同样的,这里要么是lambda表达式,要不就是是个函数名
>>> a
[1, 2, 3, 4, 5, 6]
>>> map(foo,a)
[False, False, False, True, True, True]
>>> a
[1, 2, 3, 4, 5, 6]
#foo是判断x是否大于三,是返回True,否返回false
对多个序列的操作
>>> map(lambda x,y:x+y,range(4),range(5))
Traceback (most recent call last):
File "<pyshell#84>", line 1, in <module>
map(lambda x,y:x+y,range(4),range(5))
File "<pyshell#84>", line 1, in <lambda>
map(lambda x,y:x+y,range(4),range(5))
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
>>> map(lambda x,y:x+y,range(4),range(4))
[0, 2, 4, 6]
列表解析
[表达式/函数,for循环]
>>> [x**2 for x in range(6)]
[0, 1, 4, 9, 16, 25]
>>> [a**2 for x in range(6)]
[1, 1, 1, 1, 1, 1]
>>> #可见当你写一个for循环中无关的变量时,它仅仅重复表达式的结果
>>> [foo(x) for x in range(6)]
[False, False, False, False, True, True]
#这里的函数要带括号,foo同上
>>> [lambda x:x**2 for x in range(6)]
[<function <lambda> at 0x01DE8870>, <function <lambda> at 0x01DE8830>, <function <lambda> at 0x01DE88F0>, <function <lambda> at 0x01DE8930>, <function <lambda> at 0x01DE8970>, <function <lambda> at 0x01DE89B0>]
>>> [(lambda x:x**2)(x) for x in range(6)]
[0, 1, 4, 9, 16, 25]
#同样你需要把lambda看作是函数名,或者返回值
>>> [x**2 for x in range(6) if x**2>9]
[16, 25]
>>> [(x**2,y**3) for x in range(4) for y in range(3) if x>0 and y>0]
[(1, 1), (1, 8), (4, 1), (4, 8), (9, 1), (9, 8)]
>>> #将后面的for看成嵌套的,还有前面的表达式记得加括号
reduce 对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用
>>> reduce(lambda x,y:x+y,range(1,101))
5050
>>> #reduce一定是接受一个二元函数,比如上面就是 (((1+2)+3)+4)+...
>>> reduce(lambda x,y:x+y,range(1,101),100)
5150
#接受的初始值
Python filter,map,lambda,reduce,列表解析的更多相关文章
- Python【map、reduce、filter】内置函数使用说明(转载)
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- 【转】Python 中map、reduce、filter函数
转自:http://www.blogjava.net/vagasnail/articles/301140.html?opt=admin 介绍下Python 中 map,reduce,和filter 内 ...
- Python【map、reduce、filter】内置函数使用说明
题记 介绍下Python 中 map,reduce,和filter 内置函数的方法 一:map map(...) map(function, sequence[, sequence, ...]) -& ...
- (Python)list的内建函数 filter(), map(), 和 reduce()
这一节,我们将主要学习用于list的三个内建函数: filter(), map(), 和 reduce(). 1.filter(function, sequence) 逐个从sequence中取一个 ...
- 转:Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- Python里的map、reduce、filter、lambda、列表推导式
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- python中reduce filter map lambda函数
lambda函数 python 使用 lambda 来创建匿名函数,lambda返回值是一个函数的地址,也就是函数对象. 语法:lambda [arg1 [,arg2,.....argn]]:expr ...
- python filter map reduce
filter(function, iterable): Construct a list from those elements of iterable for which function retu ...
随机推荐
- HTC A510C电信手机刷机过程
HTC A510C电信手机刷机过程记录 Writed by Peter Hu(2014.6.7) ON WIN7_64 刷机需要的步骤: 1) 将S-ON加密保护式去掉,改成S-OFF模式,这样才能 ...
- Appium移动自动化测试(一)--安装Appium
Appium 自动化测试是很早之前就想学习和研究的技术了,可是一直抽不出一块完整的时间来做这件事儿.现在终于有了. 反观各种互联网的招聘移动测试成了主流,如果再不去学习移动自动化测试技术将会被淘汰. ...
- SQLite常用命令
1.点命令 [退出SQLite提示符] .quit .exit [帮助] .help [显示设置] .show 2.语法 [结束符] : --一行语句的结束以分号(:)结尾 [CREATE TABLE ...
- MySQL数据库1 - 基本概念及安装
一.数据管理技术的产生和发展: 1.人工管理阶段 - 效率低,成本高(文字) 2.文件系统阶段 - 易于存储,处理速度快,数据形式丰富(文字,声音,图片...磁带,磁盘) 3.数据库系统阶段 - 易于 ...
- cassandra 环境搭建
1 下载安装包 http://www.planetcassandra.org/cassandra/?dlink=http://downloads.datastax.com/community/dsc- ...
- php-eclipse乱码处理
方法一:1)设置"eclipse目录下eclipse.ini文件"2)在文件结尾添加"-Dfile.encoding=UTF-8".3)重新启动eclipse, ...
- Asp.net中Json的序列化和反序列化(二)
三.JSON序列化和反序列化日期时间的处理 JSON格式不直接支持日期和时间.DateTime值值显示为“/Date(700000+0500)/”形式的JSON字符串,其中第一个数字(在提供的示例中 ...
- JavaScript原型学习笔记
1 理解JavaScript原型 什么是原型? 原型是一个对象,其他对象可以通过它实现属性继承. 任何一个对象都可以成为原型么? 是 哪些对象有原型 所有的对象在默认的情况下都有一个原型,因为原型本身 ...
- javascript 封装(给自己看)
HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- Azure媒体服务的Apple FairPlay流功能正式上线
在此我们高兴地宣布,Azure FairPlay Streaming服务已正式商用. FairPlay允许用户轻松构建解决方案,并可扩展到最新版本的Apple TV.Azure媒体服务可以结合现有的P ...