zoukankan      html  css  js  c++  java
  • Python3 filter()函数

    定义:

    class filter(object):
    """
    filter(function or None, iterable) --> filter object

    Return an iterator yielding those items of iterable for which function(item)
    is true. If function is None, return the items that are true.
    """

    filter: 过滤,筛选

    返回一个新的迭代器对象,把给入filter的iterable中每个元素作为参数传递给函数function,将function返回为true的元素保留到新迭代器对象。如果函数为None,则全部保留。

    用法:

    filter(function or None, iterable)

    function:函数

    iterable:可迭代对象

    代码举例一:

    def is_positive(n):
        return n > 0
    
    tmplist = filter(is_positive, [-3, -2, -1, 0, 1, 2, 3])
    print(tmplist)
    print(list(tmplist))

    is_positive函数,当输入为正数时,输出True,打印如下

    <filter object at 0x000001BC0B2776D8>
    [1, 2, 3]

    此时输出是:<filter object at 0x0000018857EC76D8>

    可以用list() 转化为列表

    function为None时,不过滤,全部保留

    tmplist = filter(None, [-3, -2, -1, 0, 1, 2, 3])
    print(list(tmplist))

     输出: [-3, -2, -1, 1, 2, 3]

    代码举例二:

    把上述函数写成匿名函数

    tmplist = filter(lambda x: x>0, [-3, -2, -1, 0, 1, 2, 3])
    print(list(tmplist))

    输出:[1, 2, 3]

    注意:

    在python3中,filter返回一个可iterable的对象,但不是一个列表,在Python2中,返回一个列表。

  • 相关阅读:
    事务传播机制,搞懂。
    洛谷 P1553 数字反转(升级版) 题解
    洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here 题解
    洛谷 P1055 ISBN号码 题解
    洛谷 P2141 珠心算测验 题解
    洛谷 P1047 校门外的树 题解
    洛谷 P1980 计数问题 题解
    洛谷 P1008 三连击 题解
    HDU 1013 题解
    HDU 1012 题解
  • 原文地址:https://www.cnblogs.com/gaby-yan/p/15067978.html
Copyright © 2011-2022 走看看