1
用點分隔的字符串的最後一部分,怎麼可能以優雅的方式字符串轉換,如:刪除在Python
'test.test1.test2'
'test.test3.test4'
成字符串像這樣:
'test.test1'
'test.test3'
用點分隔的字符串的最後一部分,怎麼可能以優雅的方式字符串轉換,如:刪除在Python
'test.test1.test2'
'test.test3.test4'
成字符串像這樣:
'test.test1'
'test.test3'
無需正則表達式這裏。
使用str.rsplit()
:
output = inputstr.rsplit('.', 1)[0]
output = inputstr.rpartition('.')[0]
str.rpartition()
是兩個的速度快,但你需要的Python 2.5或更新它。
演示:
>>> 'test.test1.test2'.rsplit('.', 1)[0]
'test.test1'
>>> 'test.test1.test2'.rpartition('.')[0]
'test.test1'
>>> 'test.test3.test4'.rsplit('.', 1)[0]
'test.test3'
>>> 'test.test3.test4'.rpartition('.')[0]
'test.test3'
和反對一百萬的運行時間比較:
>>> from timeit import timeit
>>> timeit("s.rsplit('.', 1)[0]", "s = 'test.test1.test2'")
0.5848979949951172
>>> timeit("s.rpartition('.')[0]", "s = 'test.test1.test2'")
0.27417516708374023
在那裏你可以運行100萬str.rsplit()
的價格200萬個str.rpartition()
電話。
使用rsplit從端分流,限制在1分:
your_string.rsplit('.', 1)
newString = oldString.rsplit( '',1)[0] - 做工不錯!非常感謝答覆 – Konstantin