[问题] python string.strip 求解惑

楼主: Thisisnotptt (这不是PTT)   2015-07-07 23:04:15
小弟最近需要处理一些数列文字,范例如下
stringA = '100.0'
stringB = '10.0'
两字串经过 .strip('.0') 处理后:
stringA.strip('.0') = '1'
stringB.strip('.0') = '1'
达不到把字串尾部 '.0' 处理掉的效果。
请问是我对 strip 或 string 定义哪边理解错误
麻烦各位指点迷津,谢谢。
楼主: Thisisnotptt (这不是PTT)   2015-07-07 23:05:00
另外 '100'.strip('.0') 也是显示 1,究竟哪边出了问题
作者: eric781101   2015-07-07 23:10:00
strip是会把括号内的字照顺序一一比对踢除,直到碰到不符合的才停止,所以都会只剩下1可以用'100'.replace('.0','')
楼主: Thisisnotptt (这不是PTT)   2015-07-07 23:18:00
正常来说'100'.strip('.0')应该在第一次比对,去除'.0'的时候就应该失败才对,因为字串中不存在'.0'
作者: eric781101   2015-07-07 23:20:00
不是比字串,他是看作两个字符,.和0分别比
楼主: Thisisnotptt (这不是PTT)   2015-07-07 23:21:00
但是strip method还是把后面两个0都拔了,究竟是为为什么?
作者: eric781101   2015-07-07 23:22:00
他设计就是这样Orz, 你可以试试看
楼主: Thisisnotptt (这不是PTT)   2015-07-07 23:22:00
喔喔,所以只要有'.'与'0'都通杀就对了?那就合理了,谢谢你
作者: eric781101   2015-07-07 23:23:00
对,通杀直到碰到不合的
楼主: Thisisnotptt (这不是PTT)   2015-07-07 23:27:00
一直以来我都以为是直接比对整个字串...惨
作者: bigpigbigpig (To littlepig with love)   2015-07-08 07:53:00
'100.0'.replace('.0','') ==> '100'
作者: zkdzvy22 (Redfour)   2015-07-09 11:25:00
如果字串小数点后不一定是0的话可以用str(int(s))吗?速度上是不是比较慢?
作者: uranusjr (←這人是超級笨蛋)   2015-07-09 13:30:00
直觉上这样会比较慢, 或许可以 benchmark 一下

Links booklink

Contact Us: admin [ a t ] ucptt.com