2020年3月31日火曜日

【文字列】分割(split)、結合(join)、置換(replace)

 区切り文字により文字列を分割するsplit、文字列を結合するjoin、文字列を別の文字列に置き換えるreplaceについて解説する。




1. splitによる文字列の分割

 splitにより文字列がスペース、タブ、改行で分割されリストに変換される。

sentence = 'check it out'
print(sentence.split())

実行結果

['check', 'it', 'out']


 スペースが2つ以上連続した場合も1つの区切り文字として扱われる。

sentence = 'check   it   out'
print(sentence.split())

実行結果

['check', 'it', 'out']


 全角スペースでも問題なく区切られる。

sentence = 'こんにちは さようなら また明日'
print(sentence.split())

実行結果

['こんにちは', 'さようなら', 'また明日']


 特定の文字で区切りたい場合は引数に文字列を指定する。
'。'で区切った例。

sentence = 'こんにちは。さようなら。また明日'
print(sentence.split('。'))

実行結果

['こんにちは', 'さようなら', 'また明日']


'さようなら'で区切った例。

sentence = 'こんにちは。さようなら。また明日'
print(sentence.split('さようなら'))

実行結果

['こんにちは。', '。また明日']


2. joinによる文字列の結合

 joinの引数としてリストなどのイテラブルオブジェクトを与えると文字列が結合される。
書式はstr.joinで、strに与えた区切り文字で区切った文字列となる。
次の例では区切り文字を与えていないので繋がった文字列が生成される。

words = ['こんにちは', 'さようなら', 'また明日']
print(''.join(words))

実行結果

'こんにちはさようならまた明日'


区切り文字に'。'を与えた場合

words = ['こんにちは', 'さようなら', 'また明日']
print('。'.join(words))

実行結果

'こんにちは。さようなら。また明日'


3. replaceによる文字列の置換

 特定の文字列を別の文字列に書き換えるのにはreplaceを用いる。
'客'を'キャク'に置き換える例

tonguetwister = '隣の客はよく柿食う客だ'
print(tonguetwister.replace('客', 'キャク'))

実行結果

'隣のキャクはよく柿食うキャクだ'


引数countを指定すると、指定の個数だけ置換される。
1を指定しているので左から1つだけ置換される。

tonguetwister = '隣の客はよく柿食う客だ'
print(tonguetwister.replace('客', 'キャク', 1))

実行結果

'隣のキャクはよく柿食う客だ'


4. リファレンス

Python 標準ライブラリ > str.split(sep=None, maxsplit=-1)
Python 標準ライブラリ > str.join(iterable)
Python 標準ライブラリ > str.replace(old, new[, count])

使用バージョン:Python 3.7.0

0 件のコメント:

コメントを投稿