【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!版权所有,侵权必究!
[返回Python教程首页]
map()
map函数接收两个参数,一个是函数f,一个是Iterator,map在Iterable的每个元素上依次执行函数f,并把结果作为新的Iterator迭代器返回。例如:
def f(x):
return x * x
result = map(f,[1,2,3]) #返回一个Iterator迭代器,可用for循环来访问
for var in result:
print(var)
输出结果:
1
4
9
reduce()
reduce函数接收两个参数,一个是函数f,一个是Iterator,其中函数f必须接收两个参数。reduce在Iterator的第一二个元素上执行函数f得到结果res,然后将结果res继续与第三个元素作为函数f的两个参数执行函数f,直到遍历完成。例如:
from functools import reduce
def f(x,y):
return x * y
result = reduce(f,[1,2,3]) #返回一个值
print(result)
输出结果:
6
注意:使用reduce函数时,需要利用from functools import reduce
语句引入functools
模块的reduce
函数,否则会执行出错。点击第七章 模块可以学习相关知识点。
filter()
filter函数也是Python常用的内置函数,用于过滤序列。与map()类似,fiter()也是接收两个参数:一个函数和一个序列,将函数作用在序列的每一个元素上,根据函数返回值True或False,来决定是否舍弃该元素,最终返回一个迭代器,内容是原序列的子序列。例如:
def is_even(x):
return x % 2 == 0
l = filter(is_even,[0,1,2,3,4,5])
print(l)
for var in l: #for循环遍历迭代器l
print(var)
执行结果:
<filter object at 0x7f14037fcc50>
0
2
4