python写货币转换_如何在Python中将货币字符串转换为浮点数?
扩展为在括号中包含负数:
In [1]: import locale, string
In [2]: from decimal import Decimal
In [3]: n = ['$1,234.56','-$1,234.56','($1,234.56)', '$ -1,234.56']
In [4]: tbl = string.maketrans('(','-')
In [5]: %timeit -n10000 [locale.atof( x.translate(tbl, '$)')) for x in n]
10000 loops, best of 3: 31.9 æs per loop
In [6]: %timeit -n10000 [Decimal( x.translate(tbl, '$,)')) for x in n]
10000 loops, best of 3: 21 æs per loop
In [7]: %timeit -n10000 [float( x.replace('(','-').translate(None, '$,)')) for x in n]
10000 loops, best of 3: 3.49 æs per loop
In [8]: %timeit -n10000 [float( x.translate(tbl, '$,)')) for x in n]
10000 loops, best of 3: 2.19 æs per loop
请注意,必须从float()/ Decimal()中去除逗号。带转换表的replace()或translate()均可用于将开头转换为(--,转换速度稍快。float()的速度最快为10-15倍,但缺乏精度,并且可能会出现语言环境问题。Decimal( )具有精度,比locale.atof()快50%,但也有语言环境问题,locale.atof()是最慢的,但最通用。
编辑:新的str.translateAPI(映射的字符None从str.translate函数移到转换表)
In [1]: import locale, string
from decimal import Decimal
locale.setlocale(locale.LC_ALL, '')
n = ['$1,234.56','-$1,234.56','($1,234.56)', '$ -1,234.56']
In [2]: tbl = str.maketrans('(', '-', '$)')
%timeit -n10000 [locale.atof( x.translate(tbl)) for x in n]
18 µs ± 296 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
In [3]: tbl2 = str.maketrans('(', '-', '$,)')
%timeit -n10000 [Decimal( x.translate(tbl2)) for x in n]
3.77 µs ± 50.8 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
In [4]: %timeit -n10000 [float( x.translate(tbl2)) for x in n]
3.13 µs ± 66.3 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
In [5]: tbl3 = str.maketrans('', '', '$,)')
%timeit -n10000 [float( x.replace('(','-').translate(tbl3)) for x in n]
3.51 µs ± 84.8 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
python写货币转换_如何在Python中将货币字符串转换为浮点数?相关推荐
- scala 字符串转换数组_如何在Scala中将十六进制字符串转换为字节数组?
scala 字符串转换数组 Hex String in Scala denotes value in hexadecimal number system i.e. base 16 number sys ...
- json字符串导入oracle,如何在Oracle中将JSON字符串转换为JSON
我需要在Oracle查询中将JSON字符串转换为JSON. 示例字符串: {"1":{"qid":1,"aid":1,"a&quo ...
- scala字符串转int_如何在Scala中将十六进制字符串转换为int?
scala字符串转int The hex string is also known as Hexadecimal Number String is a number created using hex ...
- python ascii码16进制转换_如何在Python十六进制整数和ASCii编码的字符串之间进行转换...
今天,我将与您分享一种将Python十六进制整数转换为ASCii编码的字符串的方法,该方法具有很好的参考价值,希望对大家有所帮助. 让我们一起关注小编,看看 当使用Pyserial与STM32通信时, ...
- python获取当前时间戳_如何在Python中获取当前时间戳?
在Python中可以使用来自模块time.datetime或calendar的函数来获取当前时间戳,代码语句如[import time;ts = time.time() print(ts)]. 在Py ...
- python静态变量计数器_如何在Python中使用静态变量在计数
今天,在用Python写一个统计一个文件下有多少文件的小标本时,遇到了一个很棘手的问题.如何在Python中使用静态变量来计数.然后,就在网上一通查找,找的方法都是利用类的方法来实现静态变量.说实话没 ...
- python右对齐 数字_如何在Python中右对齐数值数据?
我有一些数据,我显示在3列格式,形式"键:值键:键:值键:值".这里有一个例子: p: 1 sl: 10 afy: 4 q: 12 lg: 10 kla: 3 r: 0 kl: 1 ...
- python 指定证书验证_如何在python中验证SSL证书?
我需要验证我的自定义CA签署了证书.使用OpenSSL命令行实用程序很容易做到: # Custom CA file: ca-cert.pem # Cert signed by above CA: bo ...
- 如何用python写串口通信软件_如何用python写个串口通信的程序?
展开全部 打开串口后启动一个线程来监听串口数据的进入,有数据时,就做数据的处理. 用python写串口通信e68a84e8a2ad32313133353236313431303231363533313 ...
最新文章
- php包含文件时显示空白页,php中添加了如下语句出现空白页 删除页面zhengchang
- 1 创建数据库连接对象 IDbConnection
- android中xml tools属性详解
- [HDU3691 Nubulsa Expo]
- 将json绑定为对象_了解自定义对象创建:JSON绑定概述系列
- 【OpenCV】OpenCV函数精讲之 -- 鼠标操作
- Dojo.Layout下的三个布局组件,浓缩精华
- Spring Boot 1.5.10 发布:修复重要安全漏洞!!!
- dedecms5.7添加栏目时以简拼作目录名 以拼音首字母作文件夹名称
- 微服务笔记(一) 搭建服务治理中心
- jQuery各种选择器总结
- Spring的ioc操作 与 IOC底层原理
- android动态加载assets,从android_assets文件夹动态加载dll
- html之使用session进行服务器之间的跳转以及记录
- 如何查看kali的详细ip地址网关_在Linux中检查默认网关或路由器IP地址的四个命令...
- IDEA突然没有SVN了是怎么回事
- Unity 引擎 Managed Stripping Level 遇到的坑
- Avril Lavigne: Complicated
- 什么叫首充?关于流量卡首充的说明!
- 求1到100之间所有能被3整除的整数的和
热门文章
- mysql链表_MySql链表语句--博客园老牛大讲堂
- java销售_销售转向java编程的开始之路
- beyond compare如何添加新文件并重新比较?
- python codecs模块(用于执行编码转换之类的)
- pycharm 怎么对代码进行性能分析,消耗时间time (Run -- Profile 'xxxx')
- Powershell基础(一)
- free 命令查看linux的内存使用情况
- linux防火墙操作命令
- zigbee抗干扰matlab仿真,基于Zigbee的扩频通信MATLAB仿真.doc
- python调用exe程序 传入参数_关于使用c#调用python脚本文件,脚本文件需要传递参数...