小弟最近需要处理一些数列文字,范例如下
stringA = '100.0'
stringB = '10.0'
两字串经过 .strip('.0') 处理后:
stringA.strip('.0') = '1'
stringB.strip('.0') = '1'
达不到把字串尾部 '.0' 处理掉的效果。
请问是我对 strip 或 string 定义哪边理解错误
麻烦各位指点迷津,谢谢。
另外 '100'.strip('.0') 也是显示 1,究竟哪边出了问题
作者: eric781101 2015-07-07 23:10:00
strip是会把括号内的字照顺序一一比对踢除,直到碰到不符合的才停止,所以都会只剩下1可以用'100'.replace('.0','')
正常来说'100'.strip('.0')应该在第一次比对,去除'.0'的时候就应该失败才对,因为字串中不存在'.0'
作者: eric781101 2015-07-07 23:20:00
不是比字串,他是看作两个字符,.和0分别比
但是strip method还是把后面两个0都拔了,究竟是为为什么?
作者: eric781101 2015-07-07 23:22:00
他设计就是这样Orz, 你可以试试看
喔喔,所以只要有'.'与'0'都通杀就对了?那就合理了,谢谢你
作者: eric781101 2015-07-07 23:23: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 一下