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 练习
  • 相关阅读:
    如何:创建自定义 HTTP 模块
    [转]开源邮件系统
    [转]开源.NET邮件服务器
    [转]文件上传及图片水印
    oracle存储过程学习收集|韩顺平oracle视频教程|
    PLSQL自动输入select * from|附件在cnblogs文件|
    oracle有规律数据触发器实现递增(NC地区分类)|更新一路case简化|
    oracle中的几种循环|转|
    官方解释sqlplus /nolog conn /as sysdba无密码可登陆
    建工项目对账查询引擎sql
  • 原文地址:https://www.cnblogs.com/bigtreei/p/7819450.html
Copyright © 2011-2022 走看看