博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内置函数map, reduce, filter 的使用
阅读量:5141 次
发布时间:2019-06-13

本文共 1533 字,大约阅读时间需要 5 分钟。

内置函数map, reduce, filter 的使用方法类似,均为:第一个输入参数是函数,第二参数时sequence。

 

map

 对sequence的item 依次执行 函数。此处的函数可以是函数,自定义函数,匿名函数lambda。

  • 基本使用方法: map(function, sequence)
  • 使用中需要注意的是,在python2.7中,执行上述代码便可以直接显示结果,但在python3下,返回的结果需要重置类型,比如list,才能打印输出。
1 """依次执行""" 2 # map(str, range(5))   python 2.7下,这样就能直接显示结果,但在python 3下,这样显示不出结果也不能调用。 3 # 需要:list一下 4 ls = map(str, range(5)) 5 rs = list(ls) 6 print(rs) 7 # 匿名函数 8 rs1 = list(map(lambda x: x+1, range(5))) 9 print(rs1)10 # 自定义函数11 def func(x):12     return x**213 rs2 = list(map(func, range(8)))14 print(rs2)15 16 # 对于多参数,可以使用多参数的函数17 def func1(x,y):18     return x+y19 rs3 = list(map(func1,"fabi","dais"))20 print(rs3)

执行上述代码,例如第四行,map的作用就是使range(5)的数依次执行 str 的方法,返回的结果自然是["0","1","2","3","4"]。

整理一些遇到的map使用:

1 self.colors = list(2             map(lambda x: (int(x[0] * 255), int(x[1] * 255), int(x[2] * 255)),3                 self.colors))
1 self.colors = list(map(lambda x: colorsys.hsv_to_rgb(*x), hsv_tuples))

reduce

 对sequence的item 迭代执行 函数。

  • 基本使用方法:reduce(function,sequence)
  • 使用中需要注意的是,在python3中,reduce已经从内置函数中移除,放置在functools模块中。
  • 如果输入三个参数,则第三个参数为初始参数,也就是说,会在迭代过程中多一次第三个参数的运算。
  • 可以直接生成返回值。
1 """迭代执行"""2 from functools import reduce3 print(reduce(func1, range(10)))    # 做的是一个连加的运算4 5 print(reduce(lambda x,y:x*y, [1,2,3],2))   # 如果是三个参数,可以在原来运算的基础上,多一个第三个参数的运算

filter

 对sequence的item 依次执行 函数,返回为True( != 0)的item组合。

  • 基本使用方法: filter(function, sequence)
  • 和map一样,返回的结果需要重置类型。
1 def func2(x):2     return x%23 print(set(filter(func2, range(4))))

返回值为{1,3}。

 

转载于:https://www.cnblogs.com/monologuesmw/p/9555809.html

你可能感兴趣的文章
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
DataGridView的行的字体颜色变化
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Android-多线程AsyncTask
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
【题解】青蛙的约会
查看>>
autopep8
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
安装 Express
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
Java泛型的基本使用
查看>>
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Postman-----如何导入和导出
查看>>
【Linux】ping命令详解
查看>>
8、RDD持久化
查看>>