map函数
需要传入一个可迭代对象与函数,会返回一个迭代器对象
from collections.abc import Iterator
lst = [1, 2, 3, 4, 5]
res = map(lambda x: x ** 2, lst)
print("是迭代器对象:",isinstance(res, Iterator))
print(next(res))
print(next(res))
print(next(res))
print(next(res))
是迭代器对象: True
1
4
9
16
reduce函数(聚合函数)
reduce函数是在 functools模块里面的
参数
function:一个有两个参数的函数
sequence:是一个序列,是一些数据的集合,或者是一组数据,可迭代对象
initial:可选,初始参数
返回值:返回函数计算的结果
reduce()函数,使用function函数(有两个参数)先对集合中的sequence第 1、2 个元素进行操作,如果存在
initial参数,则将会以sequence中的第一个元素和initial作为参数,用作调用,得到的结果再与sequence中的
下一个数据用 function 函数运算,最后得到一个结果
案例:
from functools import reduce
def get_max(a: int, b: int) -> int:
if a > b:
return a
return b
lst = [1, 4, 3, 6, 8, 3, 2]
res = reduce(get_max, lst)
8
res2 = reduce(lambda x, y: x + y, lst)
print(res2)
27
filter函数(过滤器函数)
filter函数的两个参数第一个是过滤方法,第二个是需要过滤的列表,将列表里面的元素依次带入函数中进行运
算,得到的结果如果为True时,将此结果作为新的filter对象保留,等待函数里面的列表执行完成后,返回最终的
值,这里的值为列表,也就是过滤掉了False的数据或元素。
返回对象类型为迭代器对象
from collections.abc import Iterator
lst = [1, 4, 7, 2, 9]
res = filter(lambda x: x > 5, lst)
print(isinstance(res, Iterator))
print(list(res))
True
[7, 9]