Python-map、filter、reduce方法

时间:2021-08-28 19:17:31

介绍

  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