python学习-29 map函数-filter函数

2019-07-24 09:17:03来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

 


原文链接:https://www.cnblogs.com/liujinjing521/p/11154012.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:读文件时出现这个错误 'utf-8' codec can't decod

下一篇:python 之 面向对象(反射、__str__、__del__)