mathpython

広告

Pythonで文字列を分割する(split):第二引数で分割回数を指定してみよう

Python で文字列は split で分割できます。

x = 'abcbd'

y = x.split('b')

print(y)
# ['a', 'c', 'd']

abcbd を b で分割すると a と c と d に分かれます。split はリストを返します。この関数はしばしば半角スペースによる文字列の分割に利用されます。

x = 'Apple Microsoft Google'

y = x.split(' ')

print(y)
# ['Apple', 'Microsoft', 'Google']

split に半角スペースを入れると、文字列を半角スペースで区切ったリストが返ります。

Python の split になにも入れないと、半角スペースなどで分割される

区切り文字を指定しないと、Python は文字列を半角スペースなどで分割します。

x = 'Apple Microsoft Google'

y = x.split()

print(y)
# ['Apple', 'Microsoft', 'Google']

次の例を見ると、この仕様がいかに有用かわかると思います。

x = 'Apple  Microsoft    Google'

y = x.split()

print(y)
# ['Apple', 'Microsoft', 'Google']

x は半角スペースとタブを含んでいますが、それらを自動的にトリミングしてリストにしています。この性質は機械学習といった作業の前処理でしばしば役に立ちます。

split に分割回数を指定する

split の第二引数は分割回数です。

x = 'a b c d'

y0 = x.split(' ', 0)
y1 = x.split(' ', 1)
y2 = x.split(' ', 2)
y3 = x.split(' ', 3)
y4 = x.split(' ', 4)

print(y0)  # ['a b c d']
print(y1)  # ['a', 'b c d']
print(y2)  # ['a', 'b', 'c d']
print(y3)  # ['a', 'b', 'c', 'd']
print(y4)  # ['a', 'b', 'c', 'd']

分割回数 0 は分割しないことを意味するため、もとの文字列をそのままリストにしたものが返っています。1 の場合は a だけ分けて、後はなにもしていません。

広告