特定の文字列以降を削除する(その1)
例えば、123-4567のような郵便番号みたいな文字列があるとします。
"-"以降の部分文字列を削除したいとき、私が最初に思いつくのは、find()メソッドを使うやり方です。find()メソッドは、指定した部分文字列が文字列内で最初に見つかる位置のインデックスを返します。
example1.py
s = "123-4567"
pos = s.find("-")
s = s[:pos]
print(s) # 123が出力される
上のコードは変数posを使わずに書くこともできます。
example2.py
s = "123-4567"
s = [:s.find("-")]
print(s) # 123が出力される
特定の文字列以降を削除する(その2)
その次に考えられるのが、split()メソッドを使うやり方です。
今度は怪しげな?メールアドレスの@以降(ドメイン名)を削除してみます。
example3.py
s = "hogehoge@Junkmail.com"
s = s.split("@")[0]
print(s) # hogehogeが出力される
特定の文字列以降を削除する(その3)
私は知らなかったのですが、partition()メソッドを使う方法もあります。
example4.py
s = "hogehoge@Junkmail.com"
s = s.partition("@")[0]
print(s) # hogehogeが出力される
split()メソッドとの違いは、partition()メソッドは指定した区切り文字で文字列を分割し、3つの部分に分けるということです。すなわち、分割する文字列の前半、区切り文字、分割する文字列の後半に分けられます。(知らなかったので自分用の備忘録です。)