博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础--内置函数filter,reduce
阅读量:7024 次
发布时间:2019-06-28

本文共 2039 字,大约阅读时间需要 6 分钟。

movie_people=["sb+_alex","sb_wupeiqi","han"]# def filter_test(array):#     ret=[]#     for p in array:#         if not p.startswith('sb'):#             ret.append(p)##     return ret## end=filter_test(movie_people)# print(end)# movie_people=["alex","sb_wupeiqi","han_sb"]# def sb_show(n):#     return n.endswith('sb')## def filter_test(func,array):#     ret=[]#     for p in array:#         if not func(p):#             ret.append(p)##     return ret## end=filter_test(sb_show,movie_people)# print(end)#终极版本#lambda n:n.startwith('sb')def filter_test(func,array):#注意在函数调用中,尽量不要直接传入全局变量,这会修改全局变量的值,尽量使用参数赋值    ret=[]    for p in array:        if not func(p):            ret.append(p)    return retres=filter_test(lambda n:n.startswith('sb'),movie_people)print(res)#filter函数print(list(filter(lambda n: not n.startswith('sb'),movie_people)))

 

num_1=[1,2,3,4,5,6,100]res=0for num in num_1:    res+=numprint(res)# def multi(x,y):#     return x*y#lambda:x,y:x*y#num_l=[1,2,3,100]# def reduce_test(func,array):#     res=array[0]#     for num in array:#         res=func(res,num)#     return res# print(reduce_test(lambda x,y:x*y,num_l))num_l=[1,2,3,100]def reduce_test(func,array,init=None):    # 代码中经常会有变量是否为None的判断,有三种主要的写法:    # 第一种是    # ` if x is None    # `;    # 第二种是    # ` if not x:`;    # 第三种是    # ` if not x is None    # `(这句这样理解更清晰    # ` if not (x is None)    # `)    if  not init:#init是否为none        res=array.pop(0)    else:        res=init    for num in array:        res=func(res,num)    return resprint(reduce_test(lambda x,y:x*y,num_l,100))from functools import reduce#reduce函数:合并序列得出最终结果print(reduce(lambda x,y:x*y,num_l,100))

 

#处理序列中的每个元素,得到的结果是一个'列表',该'列表'元素个数及位置与原来一样 #map() #fileter遍历序列中的每个元素,判断每个元素得到布尔值,如果是True则留下来,得到结果是一个列表 people=[{"name":"alex","age":10000},{"name":"han","age":1000},{"name":"ou","age":18}] print(list(filter(lambda p:p['age']<=18,people))) #reduce:处理一个序列,然后把序列进行合并操作 from  functools import reduce print(reduce(lambda x,y:x+y,range(100),100))#参数3初始值

转载于:https://www.cnblogs.com/tangcode/p/10991678.html

你可能感兴趣的文章
今天的工作日志
查看>>
Opensuse12.2配置 Apache2+PHP5+MySQL(LAMP)
查看>>
经典SQL语法大全
查看>>
使用数据库统一管理ssh登陆用户密钥信息
查看>>
Active 与 Service 的生命周期、保存数据----Day04 2014.5.29
查看>>
ip6tables 基本配置
查看>>
C语言控制mplayer
查看>>
分布式项目(七)consul 服务注册与发现
查看>>
魂断实习之——结束。开始..........
查看>>
[Android学习笔记四] 自定义Android组件之组合方式创建密码框组件
查看>>
ciscodk教你卸载Linux软件
查看>>
Linux Shell脚本生产环境下安全地删除文件
查看>>
Oracle中scn讲解
查看>>
在Java中实现MongoDB的Group功能
查看>>
我的友情链接
查看>>
Haproxy+Keepalived+apache实现高可用
查看>>
python网络编程实现TCP和UDP连接
查看>>
Java数据库连接代码集合
查看>>
MHA配置文件参数
查看>>
php测试耗时
查看>>