Pythonで文字列から特定の文字や一部の文字列を取り出すには「インデックス指定」や「スライス記法」を使います。初心者の方でも分かるように、具体例つきでわかりやすく解説します!
ここでは文字列における任意の文字を抽出する方法について解説しています。
1文字だけ取り出す(インデックス)
moji = "mojiretsu"
print(moji[0])
出力結果
m
文字列はリストのように扱えます。ただし、listは「0」始まりであることに注意して下さい。
一部の文字を取り出す(スライス)
moji = "mojiretsu"
print(moji[0:2])
[開始:終了]
というスライス記法で、開始位置から終了の1つ前までを取り出します。
Listで[0:2]と表記した場合は、0、1番目の2文字を出力すると言う意味になります。
例えば、[4:8]と表記した場合は「rets」になります。
出力結果
mo
便利な省略表記
「:」を用いた抽出
moji = "mojiretsu"
print(moji[:2])
「複数文字の抽出」で紹介した[0:2]を短縮して表記できます。これが上記の[:2]という表記です。
例えば、[7:]と表記した場合は「su」になります。
出力結果
mo
また、「-」演算子を用いた抽出方法もあります。
マイナスを使って末尾から指定
moji = "mojiretsu"
print(moji[-1])
「-」演算子を用いると末尾から指定した数の文字を抽出します。
例えば、「-」演算子と「:」を用いた表記として「-2:」とします。この場合の出力結果は「su」となります。この結果は[7:]とした場合と同じです。
出力結果
u
特定の間隔で取り出す(ステップ指定)
moji = "mojiretsu"
print(moji[0:9:2]) # 2文字おきに取り出し
print(moji[::2]) # 先頭から2文字おき(省略記法)
[0:9:2]と表記すると、先頭を含めて2個ずつ抽出する意味になります。例えば、[0:9:3]と表記すると出力結果は「mit」となります。これらの表記を省略して「 : : n」と表現できます。
次に[::2]とすると、[0:9:2]と表記した場合と同じ結果が出力されます。例えば、[::3]とすると、[0:9:3]と表記した場合と同じ「mit」と出力されます。
出力結果
mjrtu
おまけ:List型って何?
文字列とは違って、リスト(list)は複数の値をカンマで区切って[]で囲んだ型です。
fruits = ["apple", "banana", "orange"]
print(fruits[1]) # banana
詳しくは別記事でまとめています。
まとめ
操作方法 | 例 | 説明 |
---|---|---|
1文字抽出 | moji[0] | 最初の1文字を取り出す |
範囲で抽出 | moji[2:5] | 2~4番目までを取り出す |
省略記法 | moji[:3] | 先頭から3文字 |
末尾から抽出 | moji[-1] | 最後の文字 |
間隔指定 | moji[::2] | 2文字おきに取り出す |