Python map,filter,reduce函数
# -*- 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_list
def 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_members
def 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_sum
print(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_sum
print(my_reduce2(lambda x,y:x+y,nums,2))
Python的reduce函数
#Python的reduce函数
from functools import reduce
print(reduce(lambda x,y:x+y,nums,5))
总结:
# map() 处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素个数及位置与原来一样
# filter()遍历序列中的每一个元素,判断每个元素得到布尔值,如果是True就留下来
# reduce()处理一个序列,把序列进行合并操作
Python map,filter,reduce函数的更多相关文章
- python map() filter() reduce()函数的用法以及实例
map() 看一下我的终端咋说: map()的函数用法: map(function, iterable, ...) 看一下具体例子: 注意的是一定要强制转化一下才能输出 也可以写匿名函数: (mark ...
- python Map()和reduce()函数
Map()和reduce()函数 map() 会根据提供的函数对指定序列做映射. 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函 ...
- python map filter reduce的优化使用
这篇讲下python中map.filter.reduce三个内置函数的使用方式,以及优化方法. map()函数 map()函数会根据提供的函数对指定序列做映射. 语法: map(function,it ...
- python中filter(),reduce()函数
filter()函数 是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 和一个list,这个函数的作用是对每个元素进行判断,返回 True或 False,filter() ...
- Python map filter reduce enumerate zip 的用法
map map(func, list) 把list中的数字,一个一个运用到func中,常和lambda一起用. nums = [1, 2, 3, 4, 5] [*map(lambda x: x**2, ...
- python常用函数进阶(2)之map,filter,reduce,zip
Basic Python : Map, Filter, Reduce, Zip 1-Map() 1.1 Syntax # fun : a function applying to the iterab ...
- python 内置函数 map filter reduce lambda
map(函数名,可遍历迭代的对象) # 列组元素全加 10 # map(需要做什么的函数,遍历迭代对象)函数 map()遍历序列得到一个列表,列表的序号和个数和原来一样 l = [2,3,4,5,6, ...
- Python自学笔记-map和reduce函数(来自廖雪峰的官网Python3)
感觉廖雪峰的官网http://www.liaoxuefeng.com/里面的教程不错,所以学习一下,把需要复习的摘抄一下. 以下内容主要为了自己复习用,详细内容请登录廖雪峰的官网查看. Python内 ...
- 数组的高阶方法map filter reduce的使用
数组中常用的高阶方法: foreach map filter reduce some every 在这些方法中都是对数组中每一个元素进行遍历操作,只有foreach是没有 ...
随机推荐
- Python之字符串方法
def capitalize(self): # 第一个字符变大写 def center(self, width, fillchar=None): # 内容居中,两端可指定内容填充 def count( ...
- shell练习题7
需求如下: 输入一串随机数字,然后按千分位输出. 例如:输入随机数字为"123456789",输出为123,456,789 参考解答如下 -方法1 [root@lanquark s ...
- Struts框架原理及应用
Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心控制器FilterDispatcher是Struts ...
- 互动科技 快乐分享 X/Open DTP——分布式事务模型
这一几天一直在回顾事务相关的知识,也准备把以前了解皮毛的知识进行一些深入总结,虽然这一些知识并没有用到,但是了解其实现原理还是很有必要的,因为知道了原理,你也能把它实现出来. 在上一节事务的编程模型里 ...
- Linux:Gentoo系统的安装笔记(二)
这期笔记继续安装Gentoo,上期我们已经到了可以进入新环境了,这意味着就是将原来的安装CD或其它介质改为硬盘上安装系统了,话不多说,马上开始! 恢复安装 由于我已经中断了安装,对于已经可以进入新环境 ...
- spring cloud配置高可用eureka时遇到的一些坑
考虑到注册中心的高可用,今天搭建一下eureka集群,并在中途遇到一些小的坑,前前后后花了两个小时来排除,在这里记录一下,以供后面查看. 首先,贴上要达到的效果: 一.起两个eureka模拟集群,在D ...
- cf A Simple Task---线段树
Examples Input 10 5abacdabcda7 10 05 8 11 4 03 6 07 10 1 Output cbcaaaabdd Input 10 1agjucbvdfk1 10 ...
- 微信浏览器软键盘弹出与页面resize的问题
使用微信打开网页,弹出软键盘时遇到的兼容问题 过去开发中遇到过很多这种情况,页面底部需要固定定位一个按钮,广告栏或者菜单栏,页面中有表单项需要填写,在打开手机虚拟键盘的时候,底部固定定位的元素会处在软 ...
- dos3章
FOR命令中有一些变量,他们的用法许多新手朋友还不太了解,今天给大家讲解他们的用法! 先把FOR的变量全部列出来: ~I - 删除任何引号("),扩展 %I %~f ...
- loadrunner11浏览器兼容性的问题
最近项目中遇到了新开发的系统,全是HTML5和一些最新的前端框架技术,由于没有做浏览器兼容处理,所以该系统无法在IE浏览器进行操作,对firefox和google浏览器支持较好.但是又一个问题出现了, ...