一、函数式编程Filter:
- filter(func, seq): 调用一个布尔函数 func 来迭代遍历每个序列中的元素;返回一个使 func 返回值为 true 的元素的序列
- 如果布尔函数比较简单,直接使用 lambda 匿名函数就显得非常方便了
二、传参方式:
filter(布尔函数, 列表):
filter会返回一个对象,对象可以直接被list进行转换,转换的list保存过滤结果为True的元素,False的元素则会被扔掉
布尔函数:
返回True或False的函数
还可以传入lambda表达式来简化代码量列表:
通常是需要过滤的列表
三、示例:
def fun(x):
if x > 5:
return True
else:
return False
def fun2(x):
return True if x > 1 else False
if __name__ == '__main__':
li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
li2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
f1 = filter(fun, li)
f2 = filter(fun2, li)
f3 = filter(lambda x: True if x > 6 else False, li)
print("f1", list(f1))
print("f2", list(f2))
print("f3", list(f3))
filter.png
网友评论