标签:pytho lte init lam list rom lambda iter port
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
标签:pytho lte init lam list rom lambda iter port
原文地址:https://www.cnblogs.com/LTEF/p/9212389.html