Python【filter、map、reduce】

filter和map和reduce

map(function,iterable...) -> list

映射,对列表中的每个值操作 返回操作后的数值组成列表

# 给列表值+1
l = [1,2,3,4,5,6,7,8,9,10]
print(list(map(lambda x:x+1,l)))  #  [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

filter(function,iterable...) -> list, tuple, or string

过滤,对列表中的每个值进行判断 返回符合条件的原列表值

# 筛选偶数
l = [1,2,3,4,5,6,7,8,9,10]
print(list(filter(lambda x:x%2==0,l)))  # [2, 4, 6, 8, 10]


# 补充
# 若用map执行判断语句,返回的是True或者False。map将判断语句的结果视为需求的值,而filter会将符合判断语句的原列表成员视为需求的值
print(list(map(lambda x:x%2==0,l)))  # [False, True, False, True, False, True, False, True, False, True]

reduce(function, sequence[, initial]) -> value

对sequence中的item顺序迭代调用function,函数必须要有2个参数。要是有第3个参数,则表示初始值,可以继续调用初始值,返回一个值。

依次执行,第一次取两个可迭代对象的值,交给function操作,将结果与下一个可迭代对象的值再交给function操作,直至结束

from functools import reduce
print(reduce(lambda x,y:x+y,l,0))  # 55 相当于1+2+3+...+10

猜你喜欢

转载自www.cnblogs.com/LTEF/p/9212389.html