博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python map,filter,reduce函数
阅读量:5062 次
发布时间:2019-06-12

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

# -*- coding:utf-8 -*- #定义一个自己的map函数 list_list = [1,2,4,8,16]def my_map(func,iterable):    my_list = []    for ab in iterable:        x = func(ab)        my_list.append(x)    return my_listdef add1(x):    return x +1 ############################print(my_map(add1,list_list))
#自己定义的map函数+匿名函数(比较简洁了) print((my_map(lambda x:x+1,list_list)))

下面是Python map函数

#Ptyhon的map函数+匿名函数+list(),list可以接收一个可迭代对象print(list(map(lambda x:x**2,list_list)))

filter函数:

#定义一个自己的filter函数members = ["sb_me","sb_you","good_girl","good_boy","sb_me"]def my_filter(func,list):    stay_members = []    for i in list:        if not func(i):           stay_members.append(i)    return stay_membersdef sb_show(x):    return x.startswith("sb")print(my_filter(sb_show,members))#自己定义的filter函数+匿名函数print(my_filter(lambda x:x.startswith("sb"),members))

下面是Python的filter函数

#Python的filter函数+匿名函数+list()print(list(filter(lambda x:not x.startswith("sb"),members)))

reduce函数

#定义一个自己的reduce函数#初级版,只有相乘,如果我想变成相加,要改函数,扩展性差nums = [2,4,6,8,10]def my_reduce(nums):    s_sum = nums.pop(0)    for i in nums:        s_sum = s_sum * i    return s_sumprint(my_reduce(nums))#升级版,引入一个形参函数,使得计算灵活,还可以增加一个首参(Python的reduce可以带首参,所以我们这个也可以,为啥带咱也不知道,咱也不也敢问)def my_reduce2(func,nums,init = None):    if init == None:        s_sum = nums.pop(0)    else:        s_sum = init    for i in nums:        s_sum = func(s_sum,i)    return s_sumprint(my_reduce2(lambda x,y:x+y,nums,2))

Python的reduce函数

#Python的reduce函数from functools import reduceprint(reduce(lambda x,y:x+y,nums,5))










总结:

#  map() 处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素个数及位置与原来一样

#  filter()遍历序列中的每一个元素,判断每个元素得到布尔值,如果是True就留下来

#  reduce()处理一个序列,把序列进行合并操作

转载于:https://www.cnblogs.com/iamjames/p/10769078.html

你可能感兴趣的文章
C#中的IEnumerable<T>知识点
查看>>
android访问链接时候报java.net.MalformedURLException: Protocol not found
查看>>
dwz ie10一直提示数据加载中
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Windows Phone Marketplace 发布软件全攻略
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
语义web基础知识学习
查看>>
hexo个人博客添加宠物/鼠标点击效果/博客管理
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
关于WPF的2000件事 02--WPF界面是如何渲染的?
查看>>
单元测试、、、
查看>>
SVN使用教程总结
查看>>
JS 浏览器对象
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
虚拟中没有eth0
查看>>
Unity 3D游戏开发学习路线(方法篇)
查看>>
BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
查看>>
vuex插件
查看>>
2011年12月09日
查看>>