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

    filter

    filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False  ,  filter()根据判断结果自动过滤掉不符合条件的元素返回由符合条件元素组成的新list。  它的到的结果是一个迭代器

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

    l=[1, 4, 6, 7, 9, 12, 17]
    print(list(filter(lambda x:True if x%2==1 else False,l)))
    #结果[1, 7, 9, 17]

    利用filter(),可以完成很多有用的功能,例如,删除 None 或者空字符串重要练习

    l1=['ss', '', None, 'aa ']
    #  判断是否有 x  而且x 祛除空格后还有值的情况就返回True
    print(list(filter(lambda x:True if x and x.strip() else False,l1)))

    结果

    ['ss', 'aa']

    注意: x.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。

    当rm为空时,默认删除空白符(包括' ', ' ', ' ', ' '),如下:

    练习:

    请利用filter()过滤出1~100中平方根是整数的数,即结果应该是:

    import math
    l=[]
    for i in range(100):
        l.append(i)
    print(list(filter(lambda x:True if math.sqrt(x)%1==0 else False,l)))

    结果是 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    map

    Python中的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] 
  • 相关阅读:
    web安全性测试用例
    国内可用的网络时间服务器
    selenium需要的浏览器驱动程序下载
    杂齐杂八
    检查是否网络端口占用问题
    python入到到实战--第十章----文件
    python入到到实战--第九章
    python入到到实战--第八章
    python入到到实战--第七章
    python入到到实战--第六章
  • 原文地址:https://www.cnblogs.com/wangkun122/p/8278854.html
Copyright © 2011-2022 走看看