函数的语法
关于filter函数的语法介绍可参照:菜鸟教程filter函数
例子
首先看一下菜鸟教程的例子
# 筛选奇数
def is_odd(n):
return n % 2 == 1
#filter返回的是一个迭代器
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
#output:[1, 3, 5, 7, 9]
再看一个在github中看到的例子:
items1 = list(map(lambda x: x ** 2, filter(lambda x: x % 2, range(1, 10))))
print(items1)
#output:[1, 9, 25, 49, 81]
这个例子我用自己语言解释一下:lambda x: x % 2
的作用是输入一个x
,会对应输出x % 2
的,0或1。filter(lambda x: x % 2, range(1, 10))
的作用是把1到9中的奇数(lambda表达式输出1时会判为True,从而被filter出来)取出作为一个迭代器。map函数将lambda x: x ** 2
这个函数应用在刚才生成的那个迭代器上,并返回一个迭代器。最后通过list函数将迭代器转化为数组。。。说的有点乱。。