Re: [问题] python string.strip 求解惑

楼主: uranusjr (←這人是超級笨蛋)   2015-07-09 14:07:12
※ 引述《Thisisnotptt (这不是PTT)》之铭言:
→ eric781101: 可以用'100'.replace('.0','') 07/07 23:13
→ bigpigbigpig: '100.0'.replace('.0','') ==> '100' 07/08 07:53
→ zkdzvy22: 如果字串小数点后不一定是0的话可以用str(int(s))吗? 07/09 11:25
→ 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
其他方法基本不用考虑
作者: eric781101   2014-07-07 23:13:00
可以用'100'.replace('.0','')
作者: bigpigbigpig (To littlepig with love)   2014-07-08 07:53:00
'100.0'.replace('.0','') ==> '100'
作者: zkdzvy22 (Redfour)   2014-07-09 11:25:00
如果字串小数点后不一定是0的话可以用str(int(s))吗?速度上是不是比较慢?
作者: tiefblau (tiefblau)   2015-07-09 16:03:00
实验精神推 我电脑也是replace最快
作者: Thisisnotptt (这不是PTT)   2015-07-09 17:12:00
感谢测试!!
作者: eight0 (欸XD)   2015-07-09 20:22:00
partition 呢?

Links booklink

Contact Us: admin [ a t ] ucptt.com