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']

 

posted on 2019-10-31 16:39  别动我的锅  阅读(268)  评论(0)    收藏  举报

导航

levels of contents