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
  • 相关阅读:
    1489 蜥蜴和地下室
    1521 一维战舰
    1596 搬货物
    1873 初中的算术
    CF-799B
    101 pick me up~
    落叶归根
    P1149 火柴棒等式
    P1540 机器翻译
    图论学习十之Sparse table
  • 原文地址:https://www.cnblogs.com/liujinjing521/p/11154012.html
Copyright © 2011-2022 走看看