作者uranusjr (←这人是超级笨蛋)
看板Python
标题Re: [问题] python string.strip 求解惑
时间Thu Jul 9 14:07:12 2015
※ 引述《Thisisnotptt (这不是PTT)》之铭言:
1F:→ eric781101: 可以用'100'.replace('.0','') 07/07 23:13
2F:→ bigpigbigpig: '100.0'.replace('.0','') ==> '100' 07/08 07:53
3F:→ zkdzvy22: 如果字串小数点後不一定是0的话可以用str(int(s))吗? 07/09 11:25
4F:→ zkdzvy22: 速度上是不是比较慢? 07/09 11:25
迅速做了一些比较
https://gist.github.com/uranusjr/ac00e9ef4e9602c8948d
正规表示式想也知道一定超慢, 这种事用不到它
然後那个字串其实不能直接转 int, 必须先转 float, 结果也明显慢於直接处理字串
我的电脑上最好的方式大概是 replace, find 和 rfind
一般来讲 replace 会比 find 快一些, 但结果很接近
数字较小的时候甚至 find 会比 replace 快
随着数字越大, rfind 的优势会越来越明显
如果小数位数明显少於整数位(例如 1000.0)几乎可以确定 rfind 优於 find
但最多也就和 replace 差不多而已
至少前後要差到六七位才会看到 rfind 与 find 超过 replace
所以大概可以确定一般状况下 replace 最好了
除非你的数字很大, 才需要考虑用 find 与 rfind
其他方法基本不用考虑
--
"问おう、贵方が私のマスターか?"
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.94.57
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1436422036.A.298.html
※ 编辑: uranusjr (140.112.94.57), 07/09/2015 14:07:42
5F:推 tiefblau: 实验精神推 我电脑也是replace最快 07/09 16:03
6F:推 Thisisnotptt: 感谢测试!! 07/09 17:12
7F:推 eight0: partition 呢? 07/09 20:22