【Python实践-9】将字符串转化为浮点型
利用map
和reduce
编写一个str2float
函数,把字符串'123.456'
转换成浮点数123.456
。
思路:计算小数位数--->将字符串中的小数点去掉--->字符串转换为整数--->整数转换为浮点数
from functools import reduce
def str2float(s):
DIGITS = {'': 0, '': 1, '': 2, '': 3, '': 4, '': 5, '': 6, '': 7, '': 8, '': 9}
b=0#计算小数位数
i=0
while i<len(s):
if s[i]=='.':
b=len(s)-i-1
i=i+1 s=s[:(len(s)-b-1)]+s[(len(s)-b):]
#字符转换为整数
def f1(s):
return DIGITS[s]
#exp:1,2转换为12
def f2(a,b):
return a*10+b
def f3(s):#整数转换为浮点数
for i in range(b):
s=s*0.1
return s
return (f3(reduce(f2,map(f1,s))))
print(str2float('12.3456'))
知识点:
1、将字符串中的小数点去掉可以用切片的方法。
2、reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算,其效果就是:
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
【Python实践-9】将字符串转化为浮点型的更多相关文章
- Python:利用内建函数将字符串转化为整数
使用内建函数raw_input()内建函数,它读取标准输入,并将读取到的数据赋值给指定的变量.我们可以使用int()内建函数将用户输入的字符串转换为整数: >>> user = ra ...
- C++ 字符串转化成浮点型
第一种: char szString[] = "3.1415926535898"; double db1; db1 = atof(szString); printf(" ...
- python:科学计数法转化为浮点型数据
def as_num(x): y='{:.5f}'.format(x) # 5f表示保留5位小数点的float型 return(y) 实验一下 as_num(1.2e-4) In [3]:as_num ...
- Python处理json字符串转化为字典
有一个需求,需要用python把json字符串转化为字典 inp_str = " {'k1':123, 'k2': '345','k3','ares'} " import json ...
- python eval函数,将列表样式的字符串转化为列表
python eval函数,将列表样式的字符串转化为列表 >>> str_1 = '[1,2,3,4,5,6]'>>> type(str_1)<type 's ...
- Python将字符串转化为对应类名的两种方法
way first: 1 from django.utils.module_loading import import_string 2 ValidationError = import_string ...
- Python实践之(七)逻辑回归(Logistic Regression)
机器学习算法与Python实践之(七)逻辑回归(Logistic Regression) zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Pyth ...
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
机器学习算法与Python实践之(四)支持向量机(SVM)实现 机器学习算法与Python实践之(四)支持向量机(SVM)实现 zouxy09@qq.com http://blog.csdn.net/ ...
- 机器学习算法与Python实践之(二)支持向量机(SVM)初级
机器学习算法与Python实践之(二)支持向量机(SVM)初级 机器学习算法与Python实践之(二)支持向量机(SVM)初级 zouxy09@qq.com http://blog.csdn.net/ ...
随机推荐
- 【PA 2014】Kuglarz
[题目链接] 点击打开链接 [算法] sum[i]表示前i个杯子中,杯子底下藏有球的杯子总数 那么,知道[i,j]这段区间中,藏有球的 ...
- 【HDU 1005】 Number Sequence
[题目链接] 点击打开链接 [算法] 矩阵乘法快速幂,即可 [代码] #include<bits/stdc++.h> using namespace std; int a,b,n; str ...
- backbone源代码注释(部分)
// Backbone.js 1.0.0 // (c) 2010-2013 Jeremy Ashkenas, DocumentCloud Inc. // Backbone may be freely ...
- Probabilistic interpretation
Under the previous probabilistic assumptions on the data, least-squares regression corresponds to fi ...
- MQTT + apache-apollo服务器初学使用
说明:MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通 ...
- [Swift通天遁地]一、超级工具-(17)自定义的CVCalendar日历
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- mysql 根据总分排名
mysql 根据总分排名 SELECT t.*, @rank := @rank + AS rank FROM ( SELECT @rank := ) r, ( SELECT tas.id, tas.t ...
- 洛谷 P3378 【模板】堆(小根堆)
题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: ...
- c++ swap函数
swap(a,b)也就是把a和b的值互换. 头文件:#include<algorithm>,swap要加using namespace std:
- 二分图最大匹配(匈牙利算法) POJ 3041 Asteroids
题目传送门 /* 题意:每次能消灭一行或一列的障碍物,要求最少的次数. 匈牙利算法:把行和列看做两个集合,当有障碍物连接时连一条边,问题转换为最小点覆盖数==二分图最大匹配数 趣味入门:http:// ...