python用reduce和map把字符串转为数字的方法


Posted in Python onDecember 19, 2016

python中reduce和map简介

map(func,seq1[,seq2...]) :将函数func作用于给定序列的每个元素,并用一个列表来提供返回值;如果func为None,func表现为身份函数,返回一个含有每个序列中元素集合的n个元组的列表。

reduce(func,seq[,init]) :func为二元函数,将func作用于seq序列的元素,每次携带一对(先前的结果以及下一个序列的元素),连续的将现有的结果和下一个值作用在获得的随后的结果上,最后减少我们的序列为一个单一的返回值:如果初始值init给定,第一个比较会是init和第一个序列元素而不是序列的头两个元素。

这篇文章主要介绍的是python利用reduce和map把字符串转为数字,下面话不多说,来看看详细的实现方法。

习题:

利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456

解法及思路说明:

from functools import reduce
 
def str2float(s):
 s = s.split('.') #以小数点为分隔符,把字符串分为两部分
 
 def f1(x,y): #函数1,小数点之前的数用这个函数处理
  return x * 10 + y
 
 def f2(x,y): #函数2,小数点之后的数用这个函数处理
  return x / 10 + y
 
 def str2num(str): #函数3,用于把字符串'123'逐个变为数字
  return {'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}[str]
 
 return reduce(f1,map(str2num,s[0])) + reduce(f2,list(map(str2num,s[1]))[::-1])/10
 
 #最后一部是这个解法的精髓
 #小数点前的数'123',用 x * 10 + y 正常求和就能得出123,小数点之后的数'456'要怎样才能得出0.456呢?
 #首先把字符串'456'用list(map(str2num,s[1]))转成一个列表[4,5,6]
 #然后用[::-1]切片的方式从后往前取,列表变为[6,5,4]
 #然后把[6,5,4]利用reduce函数放到f2函数中计算,( 6 / 10 + 5) / 10 + 4 = 4.56,得出结果4.56
 #再除以一个10,得出0.456,到此成功把字符串'456'变成了浮点数0.456
 #把前后结果加起来,就得到了最终解,成功把字符串'123.456'变成了浮点数123.456

总结

以上就是这篇文章的全部内容,希望本文的内容对大家学习或使用python能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
python脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 Python
跟老齐学Python之私有函数和专有方法
Oct 24 Python
Python实现队列的方法
May 26 Python
Window环境下Scrapy开发环境搭建
Nov 18 Python
Python实现合并两个有序链表的方法示例
Jan 31 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
浅析PyTorch中nn.Module的使用
Aug 18 Python
python3 xpath和requests应用详解
Mar 06 Python
python如何导入依赖包
Jul 13 Python
手把手教你将Flask应用封装成Docker服务的实现
Aug 19 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 30 Python
python虚拟环境virualenv的安装与使用
Dec 18 #Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
Dec 18 #Python
python 调用HBase的简单实例
Dec 18 #Python
python操作 hbase 数据的方法
Dec 18 #Python
Python合并字典键值并去除重复元素的实例
Dec 18 #Python
python利用matplotlib库绘制饼图的方法示例
Dec 18 #Python
浅谈Python的垃圾回收机制
Dec 17 #Python
You might like
Win2003服务器安全加固设置--进一步提高服务器安全性
2007/05/23 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
2020/05/14 PHP
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
xml转json的js代码
2012/08/28 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
asm.js使用示例代码
2013/11/28 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
Bootstrap被封装的弹层
2016/07/20 Javascript
ajax异步请求详解
2017/01/06 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
Python下Fabric的简单部署方法
2015/07/14 Python
python列表的常用操作方法小结
2016/05/21 Python
python 数据的清理行为实例详解
2017/07/12 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python开启debug模式的方法
2019/06/27 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
西班牙购买行李箱和背包网站:Maletas Greenwich
2019/10/08 全球购物
市场部管理制度
2014/02/02 职场文书
2015年党员自评材料
2014/12/17 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python