zoukankan      html  css  js  c++  java
  • Python day11 filter函数筛选数据,reduce函数压缩数据的源码详解

    1.filter滤波器函数
    定义一个数组,需求:过滤出带ii的字符串
    arr=['dsdsdii','qqwe','pppdiimmm','sdsa','sshucsii','iisdsa']
    
    def filter_ii(n):
        return 'ii' in n
    
    def filter_test(func,array):
        ret=[]
        for i in array:
            if not func(i):#注意内置函数没有not
                ret.append(i)
        return ret
    
    print(list(filter_test(filter_ii,arr)))
    #则filter_test为万用滤波器
    #example
    print(list(filter(lambda n:not 'ii' in n,arr)))

    2.reduce函数(在python3中集成在functools中,必须导入)
    #example需求:列表中各数字相乘,可以有初始数字
    
    
    li=[]
    i=1
    while (i!=101):
        li.append(i)
        i=i+1
    #上面操作是建立一个数字1~100的数组
    #下面开始写reduce的代码
    def reduce_test(fun,arr,init=None):
        if (init==None):inintion= arr.pop()
        else: inintion=init
        for i in arr:
            inintion=fun(i,inintion)
        return inintion
    
    fun=lambda x,y:x*y
    print(reduce_test(fun,li,1))
    print(reduce_test(fun,[2,3],4))
    
    #内置reduce函数的用法
    from functools import reduce
    num_1=[1,2,3,100]
    print(reduce(lambda x,y:x+y,num_1,1))
    
    

    3.map filter reduce的区别(与big data中加工,压缩数据类似)
      1.map进去与出来的列表大小是一样的,加工数据
      2.filter是筛选列表,筛选数据
      3.reduce是将一个列表变成一个值,压缩数据

     
  • 相关阅读:
    取一定范围的随机数
    小菜学Chromium之OpenGL学习之二
    程序员健康之路
    解密硬件解码关键技术
    Android 图片开发内幕系列第一篇
    你所不知道的html5与html中的那些事第三篇
    如何加密android apk
    linux设备驱动第五篇:驱动中的并发与竟态
    快速调试chromium
    小菜鸟带着梦想学chromium
  • 原文地址:https://www.cnblogs.com/littlepage/p/9384997.html
Copyright © 2011-2022 走看看