python--map()、reduce()
map()和reduce()是一种在处理大数据时的重要思想,在平时也可以利用。在python中内置了这两个方法,map取映射的意思,reduce取归纳的意思。
一、map()
- map(func, lsd)
参数1是函数
参数2是序列
- 功能:将传入的函数依次作用在序列中的每一个元素,并把结果作为一个新的Iterator返回。
注:可迭代对象是个惰性的列表,直接输出为一个地址,要想输出里面内容要显示的写出来,eg:print(list(res))
# 下面实例的目标是将列表中的字符转换为整形 def char2int(chr):
return {'':0, '':1, '':2, '':3}[chr] # 通过字典来返回转换后的结果 lis = ['','','','']
res = map(char2int, lis) # 用自己写的函数映射到每个元素上
res2 = map(int, lis) # 通过内置函数来实现
print(res) # 惰性列表,返回一个内存地址
print(list(res)) # 强制转换成列表
print(list(res2))
二、ruduce()
- reduce(func, lsd)
参数1是函数
参数2是序列
注:reduce需要引入:from functools import reduce
- 功能:一个函数作用在序列上,这个函数必须接受两个参数,reduce把结果继续和序列的下一个元素累积运算。
- eg: reduce(f, [a,b,c,d]) 等价于f(f(f(a,b),c),d) ----f是一个接受两个参数的函数。
# 实现一个累加 from functools import reduce
# 自定义的两输入加法
def Sum(a,b):
return a + b
lis = [1,2,3,4,5] res = reduce(Sum, lis) # 对序列中的元素类似递归的加进去
print(res) # 由于reduce返回的只是一个结果,不必考虑map中提到的问题
三、综合
map、reduce经常是配合起来使用的,下面有一个简单的例子,例子旨在介绍如何使用,无需关心是否实用。
# 这段代码是想要将一段数字的字符串转换为整型 from functools import reduce # 引入reduce方法 def str2int(str):
# reduce中使用的函数,将map转换后的列表中元素,生成按顺序排列的整型数字
def fc(x,y):
return x * 10 + y
# 把字符串中每个元素转换成对应的整型数字,返回一个整型的列表
def fs(chr):
return {'':0, '':1, '':2, '':3,'':4, '':5, '':6, '':7, '':8, '':9}[chr]
return reduce(fc, map(fs,list(str))) # 先使用map函数把每个元素转成数字,然后用reduce函数把数字拼接起来
res = str2int('')
print(res)
python--map()、reduce()的更多相关文章
- Python特殊语法:filter、map、reduce、lambda [转]
Python特殊语法:filter.map.reduce.lambda [转] python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力! filter(function, s ...
- 转:Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- Python里的map、reduce、filter、lambda、列表推导式
Map函数: 原型:map(function, sequence),作用是将一个列表映射到另一个列表, 使用方法: def f(x): return x**2 l = range(1,10) map( ...
- python之lambda、filter、map、reduce的用法说明
python中有一些非常有趣的函数,面试的时候可能会遇到.今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,m ...
- python中filter、map、reduce的区别
python中有一些非常有趣的函数,今天也来总结一下,不过该类的网上资料也相当多,也没多少干货,只是习惯性将一些容易遗忘的功能进行整理. lambda 为关键字.filter,map,reduce为内 ...
- python中的zip、map、reduce 、lambda、filter函数的使用
飞机票 lambda函数 lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是 ...
- python中的zip、map、reduce 、lambda函数的使用。
lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda表达式是起到一个函数速写的作用.允 ...
- Python高阶函数map、reduce、filter、sorted的应用
#-*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.support.wait import Web ...
- python中的filter、map、reduce、apply用法
1. filter 功能: filter的功能是过滤掉序列中不符合函数条件的元素,当序列中要删减的元素可以用某些函数描述时,就应该想起filter函数. 调用: filter(function,seq ...
- Python函数式编程中map()、reduce()和filter()函数的用法
Python中map().reduce()和filter()三个函数均是应用于序列的内置函数,分别对序列进行遍历.递归计算以及过滤操作.这三个内置函数在实际使用过程中常常和“行内函数”lambda函数 ...
随机推荐
- Python MySQL事务、引擎、索引及第三方库sqlalchemy
本节内容 1.数据库介绍2.事务3.引擎4.索引5.ORM sqlalchemy 1.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一 ...
- SQL中的ALL,ANY,SOME的用法
准备两个表: --T1(2,3)--T2(1,2,3,4) --ALL,ANY,SOME 的子查询-- >ALL 父查询中的结果集大于子查询中每一个结果集中的值,则为真SELECT * FROM ...
- a标签下载
<a href="存在问题.docx" download style="color:red;font-size:20px;cursor:pointer;float: ...
- c/c++ lambda 表达式 介绍
lambda 表达式 介绍 问题:假设有个需求是,在vector<string>找出所有长度大于等于4的元素.标准库find_if函数的第三参数是函数指针,但是这个函数指针指向的函数只能接 ...
- GitHub-分支管理02-BUG与Feature分支
参考博文:廖雪峰Git教程 1. Bug分支 软件开发中,bug就像家常便饭一样.有了bug就需要修复,在Git中,由于分支是如此的强大,所以,每个bug都可以通过一个新的临时分支来修复,修复后,合并 ...
- vCenter server 的部署和实施
上一次我们讲解了vclient 5.5 的安装以及连接ESXI5.5,但vclient只能管理一台ESXI,管理多台还需要切换登陆,非常麻烦.所以这次我们就来讲解一下vcenter server的相关 ...
- Servlet(三):获取表单数据、解决乱码和报错问题
在了解了servlet的生命周期以及运行过程后,再来动手写一个小例子,加深对servlet的理解. 一.需求说明 在用户注册信息页面,输入用户名.密码.性别.邮箱等一些信息后,页面返回刚刚填写的信息. ...
- 比较两个List是否相等,长度和内容都相等
/** *list中存在重复数据,且顺序不一样*/import java.util.ArrayList; import java.util.Collections; import java.util. ...
- win32gui.Findwindow(parm1,parm2)查找窗口的句柄方法
介绍之前先让大家了解一下win32gui的模块用法 和 获取窗口类名工具 使用Python时,有时也会要操作到系统窗口的一些东西,下面就介绍win32gui.Findwindow(param1,par ...
- 查看linux中的TCP连接数
一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数netstat -nat|grep -i "80"|wc -l 2)统计httpd协议 ...