Phosphophyllite

情報系学部に通う雑魚学生の日常・進捗・疑問ブログ

【python】lstrip, rstrip

すっごい久しぶりに書く。
これも冬休みの課題をやってる時にぶち当たって、シャー芯のような精神力でわかんねえよってすぐ某stack○verFl○wに投げたら数時間の内に複数回答がついた。
土下座した。
どうでもいいけど、gitでも質問サイトでも英語の文章見て書いたの日本人だなってわかるの微妙なシュールさ。

>>> pro = "0011010110"
>>> pro.lstrip("001")
''

lstrip, rstripはそれぞれの端から引数で渡した文字列を削除すると聞いたので、
ここで出力結果が "1010110"になってほしかった。
が結果は全て削除されてしまった。
なので某質問サイトで聞いてみたら、認識が間違っていたっぽい。

ちゃんと理解できてるのか自信がないけど、
引数で渡した文字列を削除というより、渡された文字列と違うcharacterが出てくるまで削除し続けるということらしい。

>>> test = "aabaab"
>>> test.lstrip("a")
baab
>>> test.lstrip("ba")
' '

つまり自分の場合、0と1のみで構成されているところに 「"001" を削除して」と渡したつもりになってたけど、0, 1以外が見つからないから全文削除されてしまっていた。
対処法としては

>>> pro = "0011010110"
>>> pro = pro[len("001"):]
1010110

pythonでは、

>>> a = "test"
>>> a[1:3]
'es'

みたいに[x:y]で「x番目からy番目の文字を取り出す」操作ができる。
[x:]とすると「x番目から末尾まで」の意味になるので、期待した通りの文字列が取り出せた。
pythonを少しでもやってた人になら簡単にわかるところだったんだろうけど、自分にはほほほーーーーって感じだった。
pythonいいすな