zoukankan      html  css  js  c++  java
  • 内置函数: filter 和 map

    内置函数———filter和map

    filter

    filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

    filter(function, iterable(可迭代对象))

    eg:

    要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数

    def is_odd(x):
        return x % 2 == 1

    然后,利用filter()过滤掉偶数

    filter(is_odd, [1, 4, 6, 7, 9, 12, 17])

    结果:

    [1, 7, 9, 17]

    利用filter() 删除 None 或者空字符串:

    def is_not_empty(s):
        return s and len(s.strip()) > 0
    filter(is_not_empty, ['test', None, '', 'str', '  ', 'END'])
    
    
    执行结果:
    
    ['test', 'str', 'END']
    注意:
    s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。
    
    当rm为空时,默认删除空白符(包括'
    ', '
    ', '	', ' '),如下:
    
    
    >>> a = ' 123'
    >>> a.strip()
    '123'
    
    
    >>> a = '		123
    '
    >>> a.strip()
    '123'
    请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:
    
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    
    
    
    实现方法:
    
    import math
    def is_sqr(x):
        return math.sqrt(x) % 1 == 0
    print filter(is_sqr, range(1, 101))
    
    
    执行结果:
    
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    filter 练习

    map

    map()函数应用于每一个可迭代的项,返回的是一个结果list。

    如果有其他的可迭代参数传进来,map()函数则会把每一个参数都以相应的处理函数进行迭代处理。

    map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

    # 有一个list, L = [1,2,3,4,5,6,7,8],我们要将f(x)=x^2作用于这个list上,那么我们可以# 使用map函数处理。
    
    
    >>> L = [1,2,3,4,] 
    >>> def pow2(x): 
    ... return x*x 
    ... 
    >>> map(pow2,L) 
    [1, 4, 9, 16] 
    map 练习
  • 相关阅读:
    html 基本布局介绍
    Hbase1.1.x Java版之批量查删操作
    java命令执行jar文件
    【转】python多版本并存,python3安装pip
    JavaHbase连接代码示例
    Shell执行将脚本里的变量打印到指定日志文件
    Datax将本地文件导入Hbase数据库!!!酷酷酷
    shell关于日期的加减
    python2安装pymongo
    Python从MongoDB中按天读取数据并格式化日志
  • 原文地址:https://www.cnblogs.com/bigtreei/p/7819450.html
Copyright © 2011-2022 走看看