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