Python-map、filter、reduce方法
介绍
1.map()函数,会让列表中每一个元素都执行一某个函数(传递1个参数),
并且将执行函数返回的结果(无论是什么结果)放在结果列表中
2.filter()函数,会让列表中的每一个元素都执行一次某个函数(传递1
个参数),并且将执行函数返回为真或不为None的结果放在结果列表中
3.reduce()函数,会将列表中的每两个元素执行一次函数(传递2个参数),
并且可以将前两个元素计算的结果拿过来,继续喝列表中的第三个元素计算,计算
完成后继续和第四个计算。。。最后返回的就是计算后的结果
map
例如:获取一个列表中的奇数
# map:拿到的是return结果列表
def is_odd(n): return n % 2 == 1 # map:拿到的是return结果列表 odd_res=map(is_odd,[1,2,3,4,5,6]) print(list(odd_res)) #[True, False, True, False, True, False]
filter
例如:获取一个列表中的奇数
#filter:把传入的函数依次作用于每个元素,根据结果True还是False决定保留还是丢弃该元素 def is_odd(n): return n % 2 == 1 odd_res=filter(is_odd,[1,2,3,4,5,6]) print(list(odd_res)) #[1, 3, 5]
应用1:删除列表中空字符串
#应用:把列表中的空字符串删掉 def not_empty(s): return s and s.strip() #s.strip()筛出不满足条件的 res=filter(not_empty, ['A', '', 'B', None, 'C', ' ']) print(list(res)) #['A', 'B', 'C']
reduce