zoukankan      html  css  js  c++  java
  • map/fileter

    一、生成器,generator,节省内存,但是增加了CPU的计算时间

    (下节课讲函数怎么变成生成器)

     每次循环的时候,就按照这个规则(自己定义的逻辑)去生成一个数据。

    res = [ 'a','1' ]

    只有在每次循环的时候,才按照这个规则去生成数据。

    all = (i for i in range(5))
    print(all)# generator生成器

     附:列表生成式

    num = [str(i).zfill(2) for i in range(10)]# list
    nums = ( str(i).zfill(2) for i in range(10) )# 生成器,外层为[],则为列表生成式,外层为(),则为生成器
    print(nums)
    for n in nums:
        print(n)

    二、map,循环调用函数

    def makir(dir_name):
        if not os.path.isdir(dir_name):
            os.mkdir(dir_name)
            return True
    
    dir_names = ['dir1','dir2','dir3']
    
    # list(map(makir,dir_names))# 循环帮你调用函数

    三、filter,过滤

    # 过滤,它把函数处理结果为假的数据过滤掉
    # 只保留函数返回真的数据
    def my(num):
        if num%2==0:
            return True
    res = list( filter(my, range(10) ))# 过滤,它把函数处理结果为假的数据过滤掉
    res2 = list( map( my,range(10) ) )# 不管返回什么,都拿到全部结果
    print('filter...res',res)
    # 运行结果:filter...res [0, 2, 4, 6, 8]
    print('map...res2',res2)
    # 运行结果:map...res2 [True, None, True, None, True, None, True, None, True, None]
  • 相关阅读:
    希腊字母写法
    The ASP.NET MVC request processing line
    lambda aggregation
    UVA 10763 Foreign Exchange
    UVA 10624 Super Number
    UVA 10041 Vito's Family
    UVA 10340 All in All
    UVA 10026 Shoemaker's Problem
    HDU 3683 Gomoku
    UVA 11210 Chinese Mahjong
  • 原文地址:https://www.cnblogs.com/Noul/p/9294134.html
Copyright © 2011-2022 走看看