python之高阶函数--map()和reduce()
以下为学习笔记:来自廖雪峰的官方网站
1.高阶函数:简单来说是一个函数里面嵌入另一个函数
2.python内建的了map()和reduce()函数
map()函数接收两参数,一个是函数,一个是Iterable. map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterable返回
例子:
#map函数
def f(x):
return x * x
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) #map函数返回一个函数和一个Iterable
print r
#将数字作为字符串输出 print(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])) reduce()函数:把一个函数作用在一个序列【x1,x2,x3,...】上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累计计算,其效果就是
reduce(f,[x1,x2,x3,x4])=f(f(f(x1,x2),x3),x4) 3.练习题1:将名字规范化
def normalize(name): #规范名字的写法
name = name[0].upper() + (name[1:]).lower()
return name r = map(normalize, ['LISA', 'adam', 'BaRt'])
print r
练习题2:#python提供sum()函数可以接受一个list并求和,请编写一个prod()函数,可以接受一个list,并求和
from functools import reduce l = [3, 5, 7, 9]
def prod(a, b):
return a * b print(reduce(prod, l))
练习题3.#利用map和reduce编写一个str2float函数,把字符串‘123.456’变成123.456
from functools import reduce def char2num(s):
return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[s] def str2float(s):
s = s.split('.')
if len(s[0]) == 0:
s[0] = '0'
return (reduce(lambda x, y: x * 10 + y, map(char2num, s[0]))) + \
(reduce(lambda x, y: x * 10 + y, map(char2num, s[1]))) * pow(0.1, len(s[1])) print(str2float('123.456'))
python之高阶函数--map()和reduce()的更多相关文章
- [ Python - 9 ] 高阶函数map和reduce连用实例
1. 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456: from functools import reduce def str2num( ...
- Python高阶函数map、reduce、filter、sorted的应用
#-*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.support.wait import Web ...
- python之高阶函数map/reduce
L = [] for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n)) print(L) Python内建了map()和reduce()函数. 我们先看 ...
- python学习笔记1 -- 函数式编程之高阶函数 map 和reduce
我用我自己,就是高阶函数,直接表现就是函数可以作为另一个函数的参数,也可以作为返回值 首先一个知识点是 函数的表现形式,印象中的是def fw(参数)这种方式定义一个函数 python有很多的内置函 ...
- python的高阶函数(map,filter,sorted,reduce)
高阶函数 关注公众号"轻松学编程"了解更多. 1.MapReduce MapReduce主要应用于分布式中. 大数据实际上是在15年下半年开始火起来的. 分布式思想:将一个连续的字 ...
- 高阶函数map(),filter(),reduce()
接受函数作为参数,或者把函数作为结果返回的函数是高阶函数,官方叫做 Higher-order functions. map()和filter()是内置函数.在python3中,reduce()已不再是 ...
- js高阶函数map和reduce
map 举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下: 由于map()方法定义在JavaScr ...
- 高阶函数-map/filter/reduce
什么样的函数叫高阶函数: 条件:1.函数接受函数作为参数 2.函数的返回值中包含函数 高阶函数之----map函数 map(func, *iterables) --> map objectnum ...
- JS高阶函数--------map、reduce、filter
一.filter filter用于对数组进行过滤.它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素. 注意: filter() 不会对空数组进行检测. 注意: filter() ...
随机推荐
- HZOI20190903模拟36 字符,蛋糕,游戏
题面:https://www.cnblogs.com/Juve/articles/11461528.html A:字符 暴力模拟一下,细节很多,但是暴力思路都不大一样 先枚举循环节长度,然后处理一个b ...
- xshell上传文件到linux
z,sz是Linux/Unix同Windows进行ZModem文件传输的命令行工具. 优点就是不用再开一个sftp工具登录上去上传下载文件. sz:将选定的文件发送(send)到本地机器 rz:运行该 ...
- JavaSE_06_Collection、泛型
1.Collection集合 1.1 集合概述 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值.集合存储的都是对象.而且对象的类型可以不一致.在开发中一 ...
- vue.js_03_vue.js的样式和修饰符
1.vue.js的样式 <body> <div id="app"> <h1 :style="styleObj1">这是一个h ...
- Ajax.NET-Professional
https://github.com/michaelschwarz/Ajax.NET-Professional Ajax.NET Professional Ajax.NET Professional ...
- 爬虫(四)Selenium + Headless Chrome爬取Bing图片搜索结果
Bing图片搜索结果是动态加载的,如果我们直接用requests去访问页面爬取数据,那我们只能拿到很少的图片.所以我们使用Selenium + Headless Chrome来爬取搜索结果.在开始前, ...
- hdu3853之概率dp入门
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/xingyeyongheng/article/details/25205693 LOOPS Time ...
- Chapter 2 栈和队列
Chapter 2 栈和队列 1- 栈 当n个元素以某顺序进栈,可在任意时刻出栈,元素排列的顺序N满足Catalan()规则: 常用操作: 1 栈的初始化和定义: 2 元素x进栈: 3 ...
- 线性求所有数模p的乘法逆元
推理: 假如当前计算的是x在%p意义下的逆元,设$p=kx+y$,则 $\Large kx+y\equiv 0(mod\ p)$ 两边同时乘上$x^{-1}y^{-1}$(这里代表逆元) 则方程变为$ ...
- ETH功能类
<?php /** * Ethereum JSON-RPC interface * * See Ethereum API documentation for more information: ...