2015年2月8日日曜日

Pythonの文字列の切り出し(スライス)について

Pythonにおいては、
string = 'abcdef'
print string[0:2]
のようにすると、0,1文字目(ab)を切り出す事ができます。よく使うのはこの形ですが、3つ目の引数(?)を指定することができます。

string[i:j:k]
であるとき、
iは読み出し開始位置(含む)、
jは読み出し終了位置(含まない)、
kはステップ
を意味します。

ステップを負の数にすると、逆順の文字を作ることができます。また、iやjを負数にすると、右から何文字目かを表すことができます。
よって、読み出されるのは i, i+k, i+2k, i+3k, …(< or > j)ということになります。 

また、各パラメータ省略することができます。(string[::]ならそのまま)
 iを省略した場合は、左端(if ステップ>0)or右端(if ステップ<0)、左端の次(if ステップ<0)

string = 'abcdef'
print string[::]#そのまま(abcdef)
print string[::-1]#逆順(fedcba)
print string[:4]#左端から4文字目まで(abcd)
print string[-3::-1]#右端から3文字目から左端まで逆順(dcba)

あるプログラムの問題をといてる時にこんがらがったのでまとめました・・・

0 件のコメント:

コメントを投稿