はじめに
Pythonにおける文字列操作についてはとても便利なため、使用方法を紹介したいと思います。
文字列操作についてはJavaの場合、先頭2文字を取得する場合は"abcdef".substring(0,2)
と記載しますが、Pythonの場合、先頭2文字を取得したい場合は"abcdef"[0:2]
とすれば先頭2文字を取得できます。
コードがとても簡易的です。
ということでPythonの文字列操作について紹介したいと思います。
Python基本構文については【Python入門】基礎構文のまとめでまとめてますので、参考にしてください。
文字列操作について
演算 | 概要 | 例 |
---|---|---|
s[:i] s[0:i]
|
文字列sの0番目の要素からi番目未満の要素まで取得 | s[:5]の場合、0番目の要素から5番目未満の要素までの文字列を取得します |
s[i:] |
文字列sのi番目の要素から全ての文字列を取得 | s[5:]の場合、5番目の要素から全ての文字列を取得します |
s[i:j] |
文字列sのi番目の要素からj番目未満の要素までを取得 | s[5:6]の場合、5番目の要素から6番目未満の要素までの文字列を取得します。即ち6番目の要素のみ取得します |
s[i:j:k] |
文字列sのi番目の要素からj番目未満の要素のうち、k毎の要素を取得(k=2の場合、2つとばしで取得という意味 | s[1:6:2]の場合、1番目の要素から6番目未満の要素のうち、1番目の要素から2つとばしの要素のみを取得します |
文字列sの0番目の要素からi番目未満の要素まで取得
要素0番目から5番目未満の文字列を取得
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[0:5])
print結果:abcde
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[:5])
print結果:abcde
0番目の要素から1000番目未満の文字列を取得。文字列以上の要素を指定してもエラーにはならず取得できます(賢いです)
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[0:1000])
print結果:abcdefghijklmnopqrstuvwxyz
文字列sのi番目の要素から全ての文字列を取得
要素5番目から全ての文字列を取得
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[5:])
print結果:fghijklmnopqrstuvwxyz
文字列sのi番目の要素からj番目未満の要素までを取得
0番目の要素から5番目未満の要素までを取得
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[1:5])
print結果:bcde
文字列以上の要素を指定した場合は全ての要素を取得(賢いですね)
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[0:1000])
print結果:abcdefghijklmnopqrstuvwxyz
文字列sのi番目の要素からj番目未満の要素のうち、k毎の要素を取得
1番目の要素から5番目の要素未満の内、2つとばしの要素を取得
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[1:5:2])
print結果:bd
ステップをマイナスにすることでreverseして取得することが可能となります
また開始位置を指定しない場合、末尾の'z'から取得されるため
str[::-1]
とstr[-1::-1]
は同等となります。
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[::-1])
print結果:zyxwvutsrqponmlkjihgfedcba
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[-1::-1])
print結果:zyxwvutsrqponmlkjihgfedcba
ステップに-2をしてすることでreverse取得しつつ、2つとばしとなります。
str = 'abcdefghijklmnopqrstuvwxyz'
print(str[::-2])
print結果:zxvtrpnljhfdb
まとめ
文字列から部分的に文字を取得する場合、コロンを使用することで部分文字列を取得できます。
文字列[開始位置:終了位置:ステップ]