Python map/reduce

2017-07-31 18:20:59

一、map函数

map():会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的iterator,即迭代器,使用list函数可以将之转成列表。

  • map(function, iterable, ...)
    • function -- 函数
    • iterable -- 一个或多个序列
def f(x):return x ** 2print(type(map(f,[1,2,3])))
print(list(map(f,[1,2,3])))# <class 'map'>
# [1, 4, 9]

map()作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的 f(x)=x2,还可以计算任意复杂的函数,比如,把这个list所有数字转为字符串等。

 

二、reduce函数

reduce():函数会对参数序列中元素进行累积。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作,用传给reduce中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

 

  • reduce(function, iterable[, initializer]):
    • function -- 函数,有两个参数
    • iterable -- 可迭代对象
    • initializer -- 可选,初始参数
from functools import reducedef add(x,y):return x+yprint(reduce(add,list(range(10))))

# 45

 可以使用reduce来进行str转int

from functools import reducedef str2int(s):def fn(x, y):return x * 10 + ydef char2num(s):return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s]return reduce(fn, map(char2num, s))

 

转载于:https://www.cnblogs.com/TIMHY/p/7264736.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux裸机安装nginx,linux环境下安装nginx步骤 - 进击的乌龟 - 博客园

开始前&#xff0c;请确认gcc g开发类库是否装好&#xff0c;默认已经安装。ububtu平台编译环境可以使用以下指令apt- get install build- essentialapt - get install libtoolcentos平台编译环境使用如下指令安装make&#xff1a;yum -y install gcc automake autoconf libtoo…

Effective C++ 条款21

必须返回对象时。别妄想返回其reference 我们上节分析了对象引用传递的优点&#xff0c;如今说明函数返回引用对象带来的种种坏处。 先来一段代码&#xff1a; class Rational{ public:Rational(int numerator0, int denominator1);…… private:int n, d;friendconst Rationa…

html 中 em

◆px像素&#xff08;Pixel&#xff09;&#xff0c;相对长度单位。像素px是相对于显示器屏幕分辨率而言的。 ◆em是相对长度单位&#xff0c;相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置&#xff0c;则相对于浏览器的默认字体尺寸。 因此用px来定…

c语言命名参数,按照C语言的规定,实参和形参的命名不得重复。

按照羊脂玉具有( )光泽。衡量睡眠质量好坏包括入睡快慢,睡眠深浅,睡后能否解乏(精神情况、规定是否影响日常的工作和生活)三个方面。参和“有药吃而无伙食命亦难保”提示健康普及必须遵循的经济性原则。形参治病与调补都需要辩证,其中区别在于用药与药量的不同。命得重咳嗽除了…

雇佣兵

题目链接&#xff1a;http://noi.openjudge.cn/ch0105/37/ 总时间限制: 1000ms内存限制: 65536kB描述雇佣兵的体力最大值为M&#xff0c;初始体力值为0、战斗力为N、拥有X个能量元素。 当雇佣兵的体力值恰好为M时&#xff0c;才可以参加一个为期M天的战斗期&#xff0c;战斗期结…

织梦的if(!defined('DEDEINC')) exit("Request Error!");解析

1if(!defined(DEDEINC)) exit("Request Error!");细细看看你就会发现,这句代码一般都是在 /include 路径下的php文件里边,为什么 dede 路径下的php文件没有呢&#xff1f;因为 include 路径下的文件是 类文件,也就是 方法文件 ,是以后要被 require_once 引入的文件,M…

阿诺德图像加密c语言,基于Arnold置乱的数字图像加密算法(二)

前文我们介绍了基于Arnold置乱的数字图像加密算法的两种图像置乱变换&#xff0c;今天我们介绍的是另外三种图像置乱变换&#xff1a;基于骑士巡游的图像置乱变换、基于Arnold变换的数字图像置乱和基于仿射变换的置乱变换。一、基于骑士巡游的图像置乱变换所谓骑士巡游&#xf…

python学习(十七) 扩展python

c, c, java比python快几个数量级。 17.1 考虑哪个更重要 开发速度还是运行速度更重要。 17.2 非常简单的途径&#xff1a;Jython和IronPython Jython可以直接访问JAVA标准库。 IronPython中可以直接访问C#标准库。 17.3 编写C语言扩展 扩展Python通常就是扩展CPython&#xff0…

织梦DEDECMS网站留言板提交时验证码错误返回空白页的解决办法

织梦DEDECMS模板网站留言板提交时验证码错误返回空白页的解决办法&#xff1a; 默认情况下&#xff0c;如果我们使用DEDE模板中的默认留言板时&#xff0c;如果留言信息不正确或者输入内容为空时&#xff0c;dedecms系统就会返回一个空白页。 这样的方式很不利于用户体验&#…

android 车辆轨迹,Android自定义view实现车载可调整轨迹线

本文实例为大家分享了Android自定义view完成车载可调整轨迹线的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下同事做的view&#xff0c;拿过来做个记录。/****/package com.text.myviewdemo.view;import org.apache.http.conn.routing.RouteInfo.LayerType;import a…

导航栏制作

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>*{margin: 0px; /*盒子外边距*/padding: 0px; /*盒子内边距*/}.NavigatorView {width: 100%;height: 50px;background-color: WhiteSmok…

我的织梦数据库学习

1、织梦中数据库有前缀&#xff0c;在程序会写成#__archives 这样的形式。其中自己要把#__前缀换成自己设置的表前缀&#xff0c;下划线也要注意换掉。

android使用menu需要重写的方法,Android – 正确使用invalidateOptionsMenu()

我一直在关注invalidateOptionsMenu() &#xff0c;我知道它的作用。 但是我想不出这个方法可能有用的任何现实生活中的例子。我的意思是&#xff0c;例如&#xff0c;假设我们想要为ActionBar添加一个新的MenuItem &#xff0c;我们可以从onCreateOptionsMenu(Menu menu)获取菜…

织梦留言板guestbook.htm加入头部导航

织梦仿站的时候如果有留言板&#xff0c;通常都是不像织梦这样的留言板独立的页面&#xff1b;都是带头部导航的。那么如何在guestbook.htm加入头部导航&#xff1b;如果直接加入head.htm的话。标签在这里是无法调用的&#xff1b;我们必须使用函数来解决这个问题&#xff1b; …

8.2 css3 新增标签 盒子模型 长度单位 颜色 渐变 径像渐变

# CSS3 盒子模型* box-sizing 值 content-box 默认值 包括所有的值 / border-box 只算边框的长与宽* resize&#xff08;调节框的大小&#xff09; * 值 none不允许 / horizontal调节宽度 / vertical调节高度 / both都可以* outline轮廓边框 o…

android keyboardview去掉点击效果,KeyboardView is deprecated in android

问题KeyboardView has been deprecated official by android team in API level 29 and i didnt able to find the alternative way for this. Please let me know if there any alternative?回答1:From the docs here :This class was deprecated in API level 29. This clas…