Pythonにおける文字列操作は、string(文字列)オブジェクト組み込みのメソッドで様々な処理を簡単におこなうことができる。

今回はその中でも最も基本的な、文字列の分割・連結に関するメソッドを紹介する。

コンマ区切りの文字列を分割するsplitメソッド

CSV形式のデータでよく見受けられる、コンマ区切りのデータを区切り文字で分割する場合、splitメソッドを使う。

csv = 'hoge,fuga,piyo,foo,bar'

data = csv.split(',')
# ['hoge', 'fuga', 'piyo', 'foo', 'bar']

分割した結果はリストとして得られる。

splitメソッドは引数に区切り文字を指定することができるので、その他の文字で区切られたデータも分割することが可能だ。

mail = 'hoge@fuga.com'

data = mail.split('@')
# ['hoge', 'fuga.com']

このsplitメソッドを使用する際、文字列の前後空白文字、改行文字を除去するstripメソッドも合わせ技で使われることが多い。

# 文字列の前後に余計な空白のあるデータ
csv = 'hoge, fuga, piyo,     foo,     bar'

pieces = [x.strip() for x in csv.split(',')]
# ['hoge', 'fuga', 'piyo', 'foo', 'bar']

文字列を連結する

文字列の連結で一番簡単な方法は「+」を使う方法だ。

'hoge' + 'fuga'
# 'hogefuga'

先述のsplitメソッドの例で分割したリストを、今度は任意の区切り文字を使って連結し、一つの文字列に戻す例を見てみよう。

csv = 'hoge,fuga,piyo,foo,bar'

data = csv.split(',')
# ['hoge', 'fuga', 'piyo', 'foo', 'bar']

a, b, c, d, e = data
a + ':' + b + ':' + c + ':' + d + ':' + e
# 'hoge:fuga:piyo:foo:bar'

上記は最も単純な方法だが、いささか汎用性が感じられない。
連結する文字列が多くなると見苦しいコードが出来上がる。

joinメソッドでスマートに文字列を連結する

もっと高速な方法がある。
joinメソッドにリストを渡す方法で、「:」で連結する場合は以下のようにすると良い。

csv = 'hoge,fuga,piyo,foo,bar'

data = csv.split(',')
# ['hoge', 'fuga', 'piyo', 'foo', 'bar']

':'.join(data)
# 'hoge:fuga:piyo:foo:bar'