[問題] 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