⌨️

Python入門⑥~インデックス・スライシング~

2023/04/10に公開

インデックス~個々の文字列の取得~

Pythonでは、要素の中で、特定の位置にあるものだ
けを取り出すことができます。

特定の1文字だけ取り出したい場合

print ('◯◯◯' [左から何番目にあるか])

特定の範囲を取り出したい場合

print ('◯◯◯' [何番目から:何番目まで])

とします。

例えば「あいうえお」という文字列があるとします。
左から数えて、1番目は「あ」、2番目は「い」、3番目は…と並んでいます。

左から1番目の文字だけを取り出したい場合は、

print ('あいうえお' [0])

とすると「あ」が表示されます。「0番目=左から1番目」という考え方です。

左から2番目の文字だけを取り出したい場合は、

print ('あいうえお' [1])

とすると「い」が表示されます。

一番最後の文字だけを取り出したい場合は、

print ('あいうえお' [-1])

とすると「お」が表示されます。

スライシング~範囲指定した文字列の取得~

左から1~4番目を範囲指定して、まとめて取り出したい場合は、

print ('あいうえお' [0:4])

とすると「あいうえ」が表示されます。
[0:4]は[0から4の一つ手前まで(=3番目まで)]という意味です。

以前、以降を指定することもできます。その場合は省略が使えます。

左から2番目以前をまとめて取り出したい場合は、

print ('あいうえお' [:2])

とすると「あい」が表示されます。

左から4番目以降をまとめて取り出したい場合は、

print ('あいうえお' [3:])

とすると「えお」が表示されます。

変更不能体

上記のインデックス・スライシングで指定した位置に代入はできません。
例えば下記の場合(「あいうえお」を「らいうえお」に変える)はエラーになります。

word = 'あいうえお'
word [0] = 'ら'
print ( word )

一部の文字列を改変したい場合、下記のようにコードを書く必要があります。
代入をいじるのではなく、「+」で結合させる、という考え方です。

word = 'あいうえお'
print ( 'ら' + word [1:] )

とすると「らいうえお」と表示されます。

文字列の長さの取得(len関数)

文字列の長さを数字で出力することができます。
len関数を使用します。

print ( len ('あいうえお') )

とすると「5」が表示されます。

Discussion