这一节,我们将主要学习用于list的三个内建函数: filter()map(), 和 reduce().


1.filter(function, sequence)  逐个从sequence中取一个元素,传入function,返回一个使function为真的序列。 如果参数sequence是str、unicode或者tuple,则返回相同的类型,否则都返回一个list

参数function:只有一个参数的函数,如果function为None,filter()将返回整个sequence。

参数sequence:一个序列(字符串、元组、列表等)

def testFilter(x):
return x%2 #x是否能被2整除 print filter(testFilter,range(1,10)) #返回不能被2整除的序列
print filter(None,range(1,10)) #返回整个range(1,10)序列

  运行结果:

>>>
[1, 3, 5, 7, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

2.map(function, sequence) 逐个从sequence中取一个元素传入function,function的每个返回值组成列表作为map函数的返回值

参数function:可以有一个参数,或者多个参数,如果有多个参数,对应的map函数的sequence参数也应该有多个,并且每个sequence的元素个数相同

参数sequence:一个序列(字符串、元组、列表等)

def testMap(x,y):
return x+y
print map(testMap,range(1,5),range(1,5))
print map(testMap,range(1,5),range(1,3))

运行结果:

>>>
[2, 4, 6, 8] Traceback (most recent call last):
File "C:/Users/PC/Desktop/pythonstudy/testfff.py", line 11, in <module>
print map(testMap,range(1,5),range(1,3))
File "C:/Users/PC/Desktop/pythonstudy/testfff.py", line 9, in testMap
return x+y
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

3.reduce(function, sequence) 取sequnce的第一个元素和第二个元素作为初始值传入function,计算后function的返回值和sequnce的下一个元素作为参数传入function进行计算,直到sequence的所有元素计算完成,将最后得到的值作为reduce的返回值

function:两个参数的函数

sequence:一个序列(字符串、元组、列表等)

注:reduce函数还可以有第三个参数,用来初始化第一个用于计算的值

如果sequence只有一个元素,那么reduce将直接返回该值,如果sequence为空,则会引起一个错误

def testReduce(x,y):
return x+y print reduce(testReduce,range(10)) #打印range(10)的所有元素相加的值,计算过程:0+1+2+..+9
print reduce(testReduce,range(10),10)#打印10和range(10) 所有元素相加的值,计算过程:10+0+1+2+...+9

运行结果:

>>>
45
55

(Python)list的内建函数 filter(), map(), 和 reduce()的更多相关文章

  1. python之高阶函数--map()和reduce()

    以下为学习笔记:来自廖雪峰的官方网站 1.高阶函数:简单来说是一个函数里面嵌入另一个函数 2.python内建的了map()和reduce()函数 map()函数接收两参数,一个是函数,一个是Iter ...

  2. python中的zip、map、reduce 、lambda、filter函数的使用

    飞机票 lambda函数 lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是 ...

  3. Python高阶函数(Map、Reduce、Filter)

    Map函数 map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明 比如我们有一个函数f(x)=x2,要把这个函数作用 ...

  4. Python高阶函数(Map、Reduce、Filter)和lambda函数一起使用 ,三剑客

    Map函数 map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明 比如我们有一个函数f(x)=x2,要把这个函数作用 ...

  5. Python内置函数filter, map, reduce

    filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车. 1. filter函数的功能相当 ...

  6. python高阶函数(Map、Reduce、Filter、lamba)

    Map函数 map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 代码如下: >>> def f(x): . ...

  7. python中的lambda、map、reduce、filter

    filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决 ...

  8. python中的zip、map、reduce 、lambda函数的使用。

    lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允 ...

  9. Python 函数进阶(filter/map/json/zip)

    一.函数即变量 def say(name): print(name)ybq = say #可以被赋值给其他变量ybq('Amily') #调用函数 函数名:say 函数体:第1-2行 返回值:retu ...

随机推荐

  1. PHP判断访问终端,电脑或手机访问

    函数代码: //判断电脑或手机访问 function is_mobile(){ $user_agent = $_SERVER['HTTP_USER_AGENT']; $mobile_agents = ...

  2. 透明(颜色)渐变背景(颜色透明背景),兼容IE8

    filter: progid:DXImageTransform.Microsoft.gradient (GradientType=0, startColorstr=#00000000, endColo ...

  3. No.6__C#

    第六周 周一:今天特别开心,因为来公司的第一个任务完成了,虽然是在组长的帮助下完成的.但是,还是有很多收获,在实际工作中遇到的问题和麻烦远远超出了书本知识 有些问题简直让人抓狂.现在,上班空余期间,也 ...

  4. 伪静态URLRewrite学习笔记

    UrlRewrite: UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址,类似于Apache的mod_rewrite.将我们的动态网页地址转化为静态的地址,如ht ...

  5. SQLite页缓冲区管理

    页面管理器是访问本地数据库文件和日志文件的唯一模块(通过操作系统API).但是它不对数据库的内容做解析,也不对数据库内容做修改(但是页管理器会对文件头信息部分内容做修改).它把随机访问系统或面向字节的 ...

  6. Java2OP

    Java2OP D:\Program Files (x86)\Embarcadero\Studio\18.0\bin\converters\java2op\Java2OP.exe Java2OP.ex ...

  7. 众安「尊享e生」果真牛的不可一世么?

    近日,具有互联网基因的.亏损大户(成立三年基本没盈利,今年二季度末亏损近4亿,你能指望它多厉害?).财产险公司—众安推出“尊享e生”中高端医疗保险(财险公司经营中高端医疗真的很厉害?真的是中高端医疗险 ...

  8. android自定义进度圆与定时任务

    先看代码:自定进度圆 public class ProgressCircle extends View { private Paint paint; private int strokewidth = ...

  9. 消息框用法MessageBox

    关键字:C# MessageBox 消息对话框 在程序中,我们经常使用消息对话框给用户一定的信息提示,如在操作过程中遇到错误或程序异常,经常会使用这种方式给用于以提示.在C#中,MessageBox消 ...

  10. PHP世纪万年历

    <?  //世纪万年历  #这是唯一的设置-请输入php文件的位置  $file="http://192.168.1.168/php/rl/s2m.php";  //#农历每 ...