filter方法可以实现筛选,第一个参数是一个函数,返回值是True或者False,第二个参数可以是str、tuple、list,将后面的参数依次传递给函数,依次判断结果,留下结果为 True的。比如:
d = filter(lambda x: x%2, [1,2,3,4])
这个结果为1,3.执行过程:
1、 将列表中的1传递给前边的函数的x,判断x%2的结果是否为True(非0),True就留下
2、 将列表中的2传递给函数中的x,判断x%2的结果是否为True(非0),True就留下
3、 依次类推直到全部判断完毕
4、 结果就为:【1,3】
再看下面这个,第一个参数是None,这种时候后面的所有值都返回,
e = filter(None, "I love python")
print(list(e))
print的结果为:
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'p', 'y', 't', 'h', 'o', 'n']