python-内置函数filter
一、描述
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
注意: Pyhton2.7 返回列表,Python3.x 返回迭代器对象,具体内容可以查看:Python3 filter() 函数
二、语法
以下是 filter() 方法的语法:
filter(function, iterable)
三、参数
- function -- 判断函数。
- iterable -- 可迭代对象。
四、返回值
返回列表。
五、实例
#!/usr/bin/python3 """ 需求:过滤出列表中以nan结尾的元素 """ person = ["liubeinan", "guangyunan", "sunerniangnv", "sunquannan", "zhugeliangnan"] def show_nan(x): return x.endswith("nan") def filter_test(func, arrary): res = [] for i in arrary: if func(i): res.append(i) return res print("自定义函数的方式实现过滤找出以nan结尾的元素功能") print(filter_test(show_nan, person)) print("-" * 40) print("自定义函数和lambda函数结合的方式实现过滤找出以nan结尾的元素功能") print(filter_test(lambda x: x.endswith("nan"), person)) print("-" * 40) print("用内置函数filter实现过滤找出以nan结尾的元素功能") print(list(filter(lambda n: n.endswith("nan"), person)))
输入结果:
自定义函数的方式实现过滤找出以nan结尾的元素功能 ['liubeinan', 'guangyunan', 'sunquannan', 'zhugeliangnan'] ---------------------------------------- 自定义函数和lambda函数结合的方式实现过滤找出以nan结尾的元素功能 ['liubeinan', 'guangyunan', 'sunquannan', 'zhugeliangnan'] ---------------------------------------- 用内置函数filter实现过滤找出以nan结尾的元素功能 ['liubeinan', 'guangyunan', 'sunquannan', 'zhugeliangnan']
浙公网安备 33010602011771号