Posts Tagged ‘スライス’

python-logo-master-v3-TM

Pythonでは文字列型に文字を挿入するメソッドが存在しないようですね。
リスト型に挿入する方法はあるのですが・・・。

まあここらへんは各々ハックされていらっしゃる事だと存じますが、
今回私が使った手法をご紹介させていただこうとおもいます。

例えば 
“http://www.example.jp/0/1/700/500.1.jpg”という文字列があったとして
文字列中の”/1/”の部分を”/7/”に変更したいとします。
これだけなら.replace()メソッドを使う事で実現できてしまうのですが、もしも文字列が
“http://www.example.jp/1/1/700/500.1.jpg”
であった場合、”/1/”は2つ存在する事になり、両方とも置換されてしまいます。
この様な動作が目的に沿わない場合もある事でしょう。

こういうケースの場合以下の様に書く事によって、任意の場所の文字列を変更する事が可能です。

src = "http://www.example.jp/0/1/700/500.1.jpg"

#文字列の末尾から"/1/"を検索、その場所を確保
idx = src.rfind(r'/1/')

#ここがキモです。pythonでは文字列は非破壊なので、新しい変数を用意する必要があります。
#スライスを使って文字列srcのidxまでの文字列を取得、そこに"/7/"を加えて、更にスライスを用いてidx+3(+3は"/7/"の3文字を表す)より後の文字列を結合させています。
result = src[:idx] + "/7/" + src[idx+3:]

以上の方法によって私は、文字列の挿入を可能としました。

文字列の「スライス」の方法は以下に詳しく書いてあります。
スライスを使った部分文字列の取得