※ 引述《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
其他方法基本不用考慮