39
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonでrstripを使う時の注意。

Last updated at Posted at 2016-09-03

rstripとは

文字列を右から削除してくれる便利な関数rstrip。以下のように使用していました。

x = 'abcdefg'
x.rstrip('efg')
print(x)

とすると、出力は

abcd

が返ってきます。

今回気づいた間違い

今回、リストの要素から'_1'と付いているものの後ろの'_1'を削除するプログラムを書いていたのですが、'101_1'や'141_1'など、'_1'以外の場所にも'1'が入っている部分でエラーになっていることに気づきました。もしかしてと思って調べてみるとやはり、rstripでは引数('1')だけを削除するのではなく、''だけや、'1'だけでも削除するみたいです。つまり上の例だと以下の様。

x = 'abcdefggefgfegef'
x.rstrip('efg')
print(x)

とすると、出力は変わらず

abcd

代わりにreplaceを使う。

例えば今回自分が書いていたプログラムでは以下のように修正できます。

before

list = ['101_1', '102_1', '102_2', '103_1']
list = [x.rstrip('_1') for x in list]

after

list = ['101_1', '102_1', '102_2', '103_1']
list = [x.replace('_1','') for x in list]

もちろんこれは厳密ではありません。_1が付いているのは最後だけという仮定の元こうしましたが、気になるようでしたら正規表現を使ってください。

39
33
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?