map and filter
2019-03-29 本文已影响0人
python_me
我的CSDN博客https://blog.csdn.net/qq_42658739
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)