文字列の抽出
仕事で文字列を抽出する機会が多いが、今だに効率の悪いコードを書いてしまう。今回もその一例を紹介したい。
メールアドレスからドメインを抽出するコード
mail_address = 'aaa@example.com'
domain = mail_address.rsplit('@')[-1]
print(domain) # example.comが表示される
実は外部ライブラリでもemailのローカルパートとドメインパートを分けるライブラリがある。しかしながら、真面目にフォーマットが正しいかどうかのチェックを度外視すると、これで十分と思われる。最初からこんなコード書ければよかったのだが、圧倒的に非効率なコードを書いてしまった。
fqdnから最後の.を取り除くコード
fqdn = 'mx.hogehoge.example.com.'
domain = fqdn.rstrip('.')
print(domain) # mx.hogehoge.example.comが表示される
たったこれだけなのだが、自分はこうではない無駄なコードを書いてしまった。rsplitは右から文字を検証するが、該当する文字がない場合は何もしないようだ。この例でいえば、一番右端が'.'であれば削除するし、そうでなければ何もしない。
Pythonをもう少し使いこなすには
組み込み関数の使い方をもう少し学習した方がよいと感じたので、最低でも一日一個ずつくらい使い方を覚えていこうと思う。