关于 reduce 和 map
一 reduce() 函数 是python 的 模块的内容,是关于累 的 计算
在调用的时候先导入reduce模块
reduce() 接收的参数有两个,reduce(function,sequence)
reduce() 对 sequence (序列) 中的每一个元素反复调用function,并返回最终结果
from functools import reduce def func(a,b):
return a+ b
ret = reduce(func,[1,2,3,4,5])
print(ret)
ret = reduce(lambda x ,y:x+y,[1,2,3,4,5])
print(ret)
s = sum([1,2,3,4,5])
print(s)
# 结果是 15
上述计算实际上是对 list 的所有元素求和,虽然 python 内置了求和函数 sum,
但是利用 reduce()也很简单
reduce() 还可以接受第3个参数,作为计算的初始值,如果把初始值设置成100,计算:
from functools import reduce def func(a,b):
return a+ b ret = reduce(func,[1,2,3,4,5],100)
print(ret) # 结果就是 115
二 map()函数 是 python 内置的高阶函数,map(func,iter1)
它接收一个函数func 和 一个 list,并通过把函数func 依次作用在 list 的每一个元素上
得到一个新的list 并返回
例如: 对于list[1,2,3,4,5,6,7,8,9]
如果 希望把 list 的每一个元素都作 平方,就可以用函数 map()
因此,我们只需要传入 函数 f(x) = x * x ,就可以利用 map()函数完成这个计算
lst = [1,2,3,4,5,6,7,8,9] # 1.可以用函数方法实现 def func(x):
return x * x ret = list(map(func,lst))
print(ret) # 2.可以用 lambda 函数实现
ret = list(map(lambda x:x**2,lst))
print(ret) #3. for 循环也可以做到
lst_new = []
for i in lst:
lst_new.append(i *i)
print(lst_new) # 输出结果清一色的: [1, 4, 9, 16, 25, 36, 49, 64, 81]
注意: map() 函数不改变原有的list,而是返回一个新的 list
利用 map()函数,可以把一个 list 转换为 另外一个 list,只需要传入转换函数
由于 list 包含的元素可以是 任何类型,因此,map() 不仅仅可以处理只包含数值的list
事实上它可以处理包含任意类型的list,只需要传入的 func 可以处理这类数据类型
关于 reduce 和 map的更多相关文章
- 高阶函数复习:利用reduce和map把字符串转为数字
复习高阶函数的时候,有一道题想了半天解不出来.看了下别人的解法,发现学习编程,思维真的很重要. 习题: 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数1 ...
- Python中Lambda, filter, reduce and map 的区别
Lambda, filter, reduce and map Lambda Operator Some like it, others hate it and many are afraid of t ...
- Python一个有意思的地方:reduce、map、filter
今天阅读了关于Python函数式编程的系列文章,地址在这里: http://www.cnblogs.com/huxi/archive/2011/06/24/2089358.html 里面提到了四个内建 ...
- python用reduce和map把字符串转为数字的方法
python用reduce和map把字符串转为数字的方法 最近在复习高阶函数的时候,有一道题想了半天解不出来.于是上午搜索资料,看了下别人的解法,发现学习编程,思维真的很重要.下面这篇文章就来给大家介 ...
- python-lambda、filter、reduce、map
python-lambda.map.filter.reduce lamdba python关键字,用于在表达式中创建匿名函数. 注意:lambda函数的定义体只能用纯表达式,不能赋值,不能使用whil ...
- 数组reduce和map方法
1.有一个长度为100的数组,请以优雅的方式求出该数组的前10个元素之和 var a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],sum ...
- python几个重要的函数(lambda,filter,reduce,map,zip)
一.匿名函数lambda lambda argument1,argument2,...argumentN :expression using arguments 1.lambda是一个表达式,而不是一 ...
- 内置函数,重要的四个reduce,map,lambda,filter
#filter过滤器#filter(函数,列表)#把列表里的元素序列化,然后在函数中过滤# str=["a","b","c","d ...
- reduce,map,filter 的用法
# filter用法 (对每一个数据进行筛选,满足条件的就保留)# 1,filter(功能函数,容器类型数据)# 2,过滤出来是一个地址,用list,或tuple进行包装# 3,过滤出来的是原容器类型 ...
- python的reduce,map,zip,filter和sorted函数
一. reduce(function,Iterable),它的形式和map()函数一样.不过参数function必须有两个参数. reduce()函数作用是:把结果继续和序列的下一个元素做累积计 ...
随机推荐
- PyToune:一款类Keras的PyTorch框架
PyToune is a Keras-like framework for PyTorch and handles much of the boilerplating code needed to t ...
- iOS-调用网页聊天、拨打电话
@property (nonatomic,strong) UIButton *but;@property (nonatomic,strong) UIButton *but1;@property (st ...
- Flutter 贝塞尔曲线切割
现在人们对于网站的美感要求是越来越高了,所以很多布局需要优美的曲线设计.当然最简单的办法是作一个PNG的透明图片,然后外边放一个Container.但其内容如果本身就不是图片,只是容器,这种放入图片的 ...
- 日常小节----unity小坑记(射线检测固定层级)
unity中射线检测需设定所需层级时,必须加上距离!!! //一条从主相机到屏幕点击点的射线 Ray ray = Camera.Main.ScreenPointToRay(Input.mousePos ...
- JAVA数据结构和算法 6 递归
递归:直接或者间接地调用自己.比如计算连续数的阶乘,计算规律:n!=(n-1)!*n. 每个递归方法都有一个基值(终止)条件,以防止无线地递归下去,以及由此引发的程序崩溃. 采用递归是因为它可以从概念 ...
- mysql写存储过程根据时间变化增加工龄
在工作中遇到要程序根据时间自动增加工龄的需求. php没办法自己发起请求,又不想在服务器上写计划任务crontab,通过用户请求来更改又不能保证用户会去操作. 用数据库的存储过程和事件来完成. 数据库 ...
- 【ES 系列1】介绍与方案设计
简介 ElasticSearch是一个高度可扩展的开源全文搜索和分析引擎.它允许您快速.近实时地存储.搜索和分析大量数据.它通常被用作驱动具有复杂搜索功能和需求的应用程序的底层引擎/技术.适用于需要大 ...
- 最新 汇量科技java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿. 汇量科技等10家互联网公司的校招Offer,因为某些自身原因最终选择了 汇量科技.6.7月主要是做系统复习.项目复盘.Le ...
- Mysql性能优化之---(一)
mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升. Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包括 表的设计合理化(符合3NF ...
- Java网络编程-你是GG还是MM?
第六阶段 网络编程 每一台计算机通过网络连接起来,达到了数据互动的效果,而网络编程所解决的问题就是如何让程序与程序之间实现数据的通讯与互动 在吗?你是GG还是MM? (一) 网络模型概述 (1) 两大 ...