首页 > 编程语言 > 详细

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

时间:2019-07-08 21:49:41      阅读:86      评论:0      收藏:0      [点我收藏+]
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

 

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

原文:https://www.cnblogs.com/liujinjing521/p/11154012.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!