Remrinのpython攻略日記

python3に入門しました。python3についてあれこれとサンプルコードとか。

文字列の削除 split(), strip(), replace(), translate(), re.sub()

pythonでの文字列の削除の方法
 
○split()
 区切り文字(delimiter)を区切りとして、文字列を分割しリストを返す
 maxsplit=1のように、オプションで最大分割回数を指定できる。
 区切り文字を指定しないときは、空白文字で区切る。
 その際、連続した空白文字はひとまとまりとして削除される。

"1, 2, 3".split(",")   #['1', ' 2', ' 3']       カンマ指定でスペースが残る
"1, 2, 3".split()      #['1,', '2,', '3']       スペース指定でカンマが残る
"1  2  3".split()      #['1', '2', '3']         連続したスペースを1つとして削除
"1, 2, 3".replace(",", " ").split()  #['1', '2', '3']
"1  2  3".split(" ")   #['1', '', '2', '', '3'] スペース指定はスペースの2文字目が残る。
"1>.2.3.>".split(">."))#['1', '2.3.>']          複数指定はセット扱い。


○strip()
 文字列の両端から指定文字をはぎとる。
 指定文字以外の文字になるまで消し続ける。
 文字を指定しない場合は、「空白文字」を削除。
 「空白文字」とは:
半角スペース、全角スペース、改行、改ページ、タブ、垂直タブ、復帰

'www.example.com'.strip('cmowz.')   #'example'

 

○replace()
 本来は文字列の置換だが、置換後の文字列をempty stringに指定すると削除。

"1,2,3".replace(",", "")   #'123'
"<1>".replace("<", "").replace(">", "")   #1   何回でもreplaceを連結できる

 
○translate()
第1引数と第2引数は同じ文字数で置換前と置換後の文字の1文字ずつの対応。
日本語も対応。

dic =str.maketrans("", "", "bd")  #第3引数が消去する文字の一覧
"abcd".translate(dic)             #"ac"

sdic ={ord("a"):ord("x")}         #maketransせずに辞書を準備できる。
"abcd".translate(sdic)            #xbcd