2018年1月11日木曜日

[Python] 文字列のインデックスとスライス

Pythonにはインデックスとスライスというものがあります.以下は,それらに関してのメモです.

インデックスは0から始まります.以下は,word という変数にpythonという文字列を入力して,その変数の各インデックスを表示してみた例です.
>>> word = 'python'
>>> print(word[0])
p
wordに入っているpythonという文字列のインデックス0は,p となります.

同様に,インデックス1は y,インデックス2は t となり,インデックス-1は最後の文字を指定するという意味になるので,n になります.

>>> print(word[1])
y
>>> print(word[2])
t
>>> print(word[-1])
n

存在しないインデックスを指定するとエラーが返ってきます.以下の例ではインデックス100を指定して,エラーが返ってきています.
>>> print(word[10])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range


スライスは,インデックス番号を指定してその間の文字列を抜き出す機能です.
以下の例では,インデックス0から2と指定すると,インデックス0,1の文字が表示されています.すなわち,スライスでは末尾に指定したインデックスの一つ前までが抜き出されることになります.

>>> print(word[0:2])
py

同様に,以下の例では :2 と指定することでインデックス0から1を抜き出す例,2:5 と指定することで,インデックス 2 から 4 までを抜き出す例,2: と指定することでインデックス2から最後までを抜き出す例を示しています.
>>> print(word[:2])
py
>>> print(word[2:5])
tho
>>> print(word[2:])
thon

また,先に指定した文字列を部分的に入れ替えるには,以下の様にします.
>>> word = 'j' + word[1:]
>>> print(word)
jython

さらに len 関数で文字列の長さを取得することが可能です.
>>> n = len(word[:])
>>> print(n)
6

上記の事柄のJupyter Notebookファイルはこちら(GitHub)で公開しています.

関連したPythonの基礎に関する投稿
変数宣言Print関数数値文字列

0 件のコメント :

コメントを投稿