map
map(func, *iterables) –> map object
map函数相当于把迭代对象的所有项都作为参数执行所给的函数,返回应用后的结果。
>>> iter = [1, 2, 3] # 可迭代对象
>>> func = lambda x: x + 3 # 匿名函数:加3
>>> list(map(func, iter)) # 列表中的所有项都+3
[4, 5, 6]
filter
filter(function or None, iterable) –> filter object
filter函数相当于把迭代对象的所有项都作为参数执行所给的函数,去除返回结果为假的迭代项。
>>> iter = [1, 2, 3, 4, 5, 6, 7] # 可迭代对象
>>> func = lambda x: x > 3, a # 匿名函数:是否大于3
>>> list(map(func, iter)) # 只保留大于3的项
[4, 5, 6, 7]
reduce
reduce(function, sequence[, initial]) -> value
reduce通过对一个累加器和后续项应用函数来计算一个单个的值。
和其他两个函数不同,reduce在Python 3.0的functools模块中可用,而不是在内置作用域中可用。
>>> from functools import reduce
>>> iter = [1, 2, 3, 4, 5] # 可迭代对象
>>> func = lambda x, y: x + y # 匿名函数: 两数之和
>>> reduce(func, iter) # 累加
15
>>> from functools import reduce
>>> iter = [1, 2, 3, 4, 5] # 可迭代对象
>>> func = lambda x, y: x * y # 匿名函数: 两数之积
>>> reduce(func, iter) # 累乘
120
注意
在python2 map和filter返回的是一个结果列表,而在python3中,map和filter返回的是一个生成器iter对象,可以正常迭代输出,但是直接输出为一个对象类型
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏