一、函数式编程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 Falsedef fun2(x): return True if x > 1 else Falseif __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)) |