zoukankan      html  css  js  c++  java
  • python学习-29 map函数-filter函数

    movie_person = ['小红','小明','小王','富豪_sb','美女_sb']
    
    def filter_test(array):
        ret = []
        for i in array:
            if not i.startswith(''):   # 以‘小’开头的
                ret.append(i)
        return  ret
    print(filter_test(movie_person))
    
    
    
    def filter_test(array):
        res = []
        for i in array:
            if not i.endswith('sb'):   # 以‘sb’结尾的
                res.append(i)
        return  res
    print(filter_test(movie_person))

    运行结果:

    ['富豪_sb', '美女_sb']
    ['小红', '小明', '小王']
    
    Process finished with exit code 0

    或另一种简单的方法:

    movie_person = ['小红','小明','小王','富豪_sb','美女_sb']
    
    def filter_test(func,array):
        ret = []
        for i in array:
            if not func(i):   
                ret.append(i)
        return  ret
    
    res = filter_test(lambda x:x.endswith('sb'),movie_person)   # 以‘sb’结尾的
    print(res)

    运行结果:

    ['小红', '小明', '小王']
    
    Process finished with exit code 0

    reduce函数

    1.加法和乘法(两种方法)

    from functools import reduce            # 调用 reduce函数
    
    num_1 = [1,2,3,4,5,6,7,8,9,100]
    
    def reduce_test(array):
        res = 0
        for num in array:
            res += num
        return res
    print(reduce_test(num_1))
    
    
    def reduce_test(func,array):
        res = array.pop(0)            # 将列表的值一个一个传值
        for num in array:
            res =func(res,num)
        return res
    print(reduce_test(lambda  x,y:x*y,num_1))     # 用lambda 进行乘法运算

    运行结果:

    145
    36288000
    
    Process finished with exit code 0

    2.传一个初始值

    from functools import reduce            # 调用 reduce函数
    
    num_1 = [1,2,3,4,5,6,7,8,9,100]
    
    def reduce_test(func,array,init = None):
        if init is None:
            res = array.pop(0)
        else:
            res = init
        for num in array:
            res = func(res,num)
        return res
    print(reduce_test(lambda x,y:x*y,num_1,100))     # 传了一个初始值100,以100开始乘以列表里的每个数

    运行结果:

    3628800000
    
    Process finished with exit code 0
  • 相关阅读:
    Bzoj4872: [Shoi2017]分手是祝愿
    大数据应用价值研究员--数据可视化工程师
    Angular Redux
    Reactive Redux
    Testing a Redux & React web application
    [转]于Fragment和Activity之间onCreateOptionsMenu的问题
    [转]探究java IO之FileInputStream类
    深入解析FileInputStream和FileOutputStream
    [转]慎用InputStream的read()方法
    [转]Android
  • 原文地址:https://www.cnblogs.com/liujinjing521/p/11154012.html
Copyright © 2011-2022 走看看