Python内建map和filter高阶函数,它们接收一个iterable对象(比如:列表)。
map接收两个参数,一个是函数,一个是iterable,map将传入的函数依次作用到iterable的每个元素,然后把结果作为新的iterable返回。
def add_six(x): return x+6 nums = [1,2,3,4,5,6,94] result = list(map(add_six,nums)) #map函数返回的是一个iterator,是一个惰性序列,需要用iterable函数强制转换,例如:list,tuple.. print(result)
理所当然,也可以使用匿名函数lambda表达式来创建。
nums2 = [2,4,6,8,10] result2 = list(map(lambda x:x+6,nums2)) print(nums2)
filter函数用于过滤序列,给定的函数返回一个boolean值(True 或者 Flase),根据是真还是假决定保留还是丢弃该元素。也就是一个判断条件。
nums3 = [3,6,9,11] result3 = tuple(filter(lambda x:x%2 ==0,nums3)) #当x%2=0时,该成立的x值最终将会传给result3 print(result3)