文字列の分割・結合 split, join,rsplit

split: 文字列の分割

str.split(sep)
sepを区切り文字として、単語を分割してリストにする。
区切り文字が指定されない場合は、スペース、タブ、改行文字列で分割される特殊なルールになる。

>>> "hello,world,foo,bar".split(",")
['hello', 'world', 'foo', 'bar']
>>> "hello,world, foo, bar".split(", ")
>>> "hello world\tfoo\nbar".split()
['hello', 'world', 'foo', 'bar']

第2引数で区切り文字で分割する回数を指定することができる。

>>> "aaa,bbb,ccc".split(",", 1)  #分割回数は1回に制限。('bbb,ccc'は分割されていない)
['aaa', 'bbb,ccc']

正規表現でのsplitの場合は、reモジュールを使用する。※ 正規表現split参照

>>> import re
>>> re.split(r'[,:]', "a,b:c")
['a', 'b', 'c']

join: 文字列シーケンスの連結

sep.join(seq)
sepを区切り文字として、seqを連結してひとつの文字列にする。

>>> ":".join(["a", "b", "cde"]);
'a:b:cde'

シーケンス.joinではなく、区切り文字列.join(シーケンス)なので注意。

rsplit: 右から文字列の分割

rsplitは右側から文字列を指定回数分割する。

>>> "/path/to/foo/bar/hoge.txt".rsplit("/", 1)  # 右から1回だけ分割。パスとファイル名に分割
['/path/to/foo/bar', 'hoge.txt']

余談ですがファイル名とパスに分割する機能は、os.path.split() を使った方がよいです。

関連記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)