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

    filter(function or None,iterable) 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。

    该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中;当当一个参数为None时,将第二个参数序列中的True值筛选出来。。

    print(list(filter(None,[1,0,False,True])))
    print(list(filter(lambda x:x%2,range(10))))
    
    输出为:
    [1, True]
    [1, 3, 5, 7, 9]
    
    上述第二个:
    print(list(filter(lambda x:x%2,range(10))))
    等价于:
    def odd(x):
        return x%2
    temp=range(10)
    print(list(filter(odd,temp)))  

    用filter()和lambda()表达式快速求出100以内的所有3的倍数。

    print(list(filter(lambda x:x%3==0,range(101))))
    print(list(filter(lambda x:not(x%3),range(101))))
    #以下为列表推导式
    print([i for i in range(0,101) if not(i%3)])
    print([i for i in range(0,101) if i%3==0])
    print(list(range(10)))
    输出为: 
    [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
    [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
    [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
    [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    

     

    map() 函数

    map(function, iterable, ...)或 map(function,*iterables)

    会根据提供的函数对指定序列做映射。

    第一个参数 function 以参数序列中的每一个元素调用 function 函数,直到可迭代序列的每个元素都处理完,返回包含每次 function 函数返回值的新列表。返回所有处理后元素构成的新序列。

    截图部分参考: https://www.runoob.com/python/python-func-map.html

    print(list(map(lambda x:x*2,range(10))))

    输出: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

  • 相关阅读:
    MT【319】分段递推数列
    MT【318】分式不等式双代换
    Centos7环境变量
    VI快捷键
    Centos7 开机自动运行命令
    Centos7 编辑本地DNS解析配置文件
    Centos7修改主机名
    xadmin 自定义过滤器选项
    Centos7网卡配置文件
    Centos7 挂载
  • 原文地址:https://www.cnblogs.com/Li-JT/p/15061131.html
Copyright © 2011-2022 走看看