全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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  # map  # reduce  # 字符串转数字  # map和reduce  # Python不使用int()函数把字符串转换为数字的方法  # python 数字类型和字符串类型的相互转换实例  # python中数字列表转化为数字字符串的实例代码  # 第一个  # 这篇文章  # 浮点数  # 作用于  # 返回值  # 的是  # 变成了  # 就能  # 来看看  # 就得  # 表现为  # 多说  # 到此  # 用在  # 转换成  # 两部分  # 加起来  # 转成  # 先前  # 而不是 


相关文章: 如何在阿里云香港服务器快速搭建网站?  常州自助建站费用包含哪些项目?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  如何构建满足综合性能需求的优质建站方案?  ppt制作免费网站有哪些,ppt模板免费下载网站?  已有域名和空间如何搭建网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  北京专业网站制作设计师招聘,北京白云观官方网站?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  广德云建站网站建设方案与建站流程优化指南  智能起名网站制作软件有哪些,制作logo的软件?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何选择建站程序?包含哪些必备功能与类型?  如何登录建站主机?访问步骤全解析  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何快速查询网站的真实建站时间?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  建站之星展会模版如何一键下载生成?  建站之星官网登录失败?如何快速解决?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  ,sp开头的版面叫什么?  网站制作的步骤包括,正确网址格式怎么写?  专业公司网站制作公司,用什么语言做企业网站比较好?  如何彻底卸载建站之星软件?  测试制作网站有哪些,测试性取向的权威测试或者网站?  建站主机核心功能解析:服务器选择与网站搭建流程指南  电商网站制作公司有哪些,1688网是什么意思?  企业微网站怎么做,公司网站和公众号有什么区别?  网站制作话术技巧,网站推广做的好怎么话术?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  建站之星后台管理系统如何操作?  小程序网站制作需要准备什么资料,如何制作小程序?  如何用wdcp快速搭建高效网站?  海南网站制作公司有哪些,海口网是哪家的?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  建站之星如何一键生成手机站?  详解jQuery中基本的动画方法  广州建站公司哪家好?十大优质服务商推荐  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  如何破解联通资金短缺导致的基站建设难题?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  北京企业网站设计制作公司,北京铁路集团官方网站?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  如何通过FTP空间快速搭建安全高效网站?  建站VPS配置与SEO优化指南:关键词排名提升策略  招商网站制作流程,网站招商广告语?  如何通过PHP快速构建高效问答网站功能? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。