map() 函数
map(func, iterable, …)
lambda 匿名函数的使用
map() 函数的输出结果 是一个迭代器
可以使用 list 显示结果
但是迭代器的结果只能使用一次,再次输出就为空值了
如果需要多次使用可以将其使用list函数 赋值给一个变量
再看一个多个iterable的例子
filter() 函数
filter(func, iterable) 只接收两个参数,一个过滤函数,一个序列
filter() 函数将序列中的元素一个一个经过func 函数进行判断,返回True 或者False,然后再将返回True 的元素返回到一个新列表当中
值得注意的是:
filter(func, iterable) 等同于一个生成器表达式:
(item for item in iterable if func(item) is True)
如果func 是 None的话 等同于:
(item for item in iterable if item)
先自己写一个 even 函数
可以看到filter函数过滤掉了序列 aaaa 当中的奇数,留下了 偶数部分
再看看这个func 为空的情况
可以看到,他把0当作False
同样地,filter()函数返回的结果也是一个迭代器,需要使用list函数显示结果 并且其只能使用一次
reduce() 函数
reduce(func, iterable) 对参数序列当中的元素进行累积,返回函数计算结果
可参考这篇图文,画的很形象
reduce() 函数图文
一个简单的使用reduce函数进行累乘的例子