Pythonのlstrip(rstrip, strip)の挙動について

Pythonのlstripの挙動についてなんかおかしいと思ったら勘違いだったようなのでメモ。

>>> s = '/home/testuser/contents/model'
>>> s.lstrip('/home/testuser/')
'contents/model'

で /home/testuser/ を文字列から取り除くことができてうまく行ったと思ったのだがこれは勘違い。

>>> s = '/home/testuser/contents/model'
>>> s.lstrip('/emoh/resutset')
'contents/model'

こんな書き方をしても /home/testuser が消えてしまう。つまりlstrip(strip, rstrip)に指定する引数は文字列ではなく文字集合であるということ。

だからある文字列から部分的に文字列を削除したい場合はreplaceを使うのが正しいとのこと。

>>> s = '/home/testuser/contents/model'
>>> s.replace('/home/testuser','')
'/contents/model'

参考: https://qiita.com/github-nakasho/items/aef2f3b0024f97a1e216

前回の記事を書いてから5ヶ月も経過していた…。


この記事が気に入ったらサポートをしてみませんか?