split
Pythonの文字列は、メソッドsplitを用いることでlistに分割することができます。
まずは実際にコードを見てみましょう。下記のような半角スペース区切りで単語が結合されている文字列を考えます。
1 | fruits = 'orange lemon apple banana grape' |
区切り文字(ここでは半角スペース)は連続して複数入っている場合は一つの区切り文字として扱われます。また、文字列の先頭や末尾に入っている区切り文字は無視されます。
1 | fruits2 = ' orange lemon apple banana grape ' |
改行コードも区切り文字として分割されます。
1 | fruits3 = ' orange\nlemon apple\rbanana grape ' |
区切り文字の指定
また、区切り文字を自分で指定することもできます。
1 | fruits.split(' ') |
ただし、区切り文字の指定を行なった場合は、先述のルール
1 | 区切り文字(ここでは半角スペース)は連続して複数入っている場合は一つの区切り文字として扱われます。また、文字列の先頭や末尾に入っている区切り文字は無視されます。 |
は適用されません。すなわち
1 | fruits2 = ' orange lemon apple banana grape ' |
のような挙動となるので中板必要です。
maxsplitの指定
最大で何分割をするか指定することもできます。
1 | fruits.split(' ',1) |
また、rsplitを用いると、文字列の末尾から分割をすることができるため、
取り出したい要素が後ろの方にある場合は下記のような無駄なく要素を取り出せます
1 | fruits.rsplit(' ',1) |
正規表現を用いたい場合
区切り文字をリストなどで複数指定することはできません。
1 | fruits.split(['1','2']) # エラー。リストを指定することはできない |
そう言った場合は正規表現を使うと良いでしょう。
1 | import re |
splitlines
文字列を改行コードで分割したい場合はsplitlinesを利用すると良い。この場合、半角スペースは区切り文字として扱われない。
1 | fruits3 = ' orange\nlemon apple\rbanana grape ' |