今回は、文字列を抽出する方法ついて解説します。
Pythonでは、文字列を抽出する場合、インデックスを指定するか、スライスで抽出します。
スライスで文字列を抽出するには始点と終点を指定します。
目次
文字の場所を指定して抽出する
文字の場所を指定して抽出する
文字の場所を指定して抽出するには、インデックスを指定すると、その位置の文字を取得することができます。
左から、0、1、2、3、4、5、というようにインデックスを指定していきます。
(例)
x = 'abcdefg'
print(x[0])
# 実行結果: a
print(x[5])
# 実行結果: f
右から数えて指定するには、負の値の、-1、-2、-3、-4、-5、-6、-7というようにインデックスを指定していきます。
(例)
x = 'abcdefg'
print(x[-1])
# 実行結果: g
print(x[-4])
# 実行結果: d
print(x[-7])
# 実行結果: a
存在しないインデックスを指定した場合は、「IndexError」となります。
(例)
x = 'abcdefg'
print(x[20])
# 実行結果: IndexError: string index out of range
スライスで文字列を抽出
スライスで文字列を抽出
スライスで文字列を抽出する場合は、始点と終点を [start:end] として表してインデックスを指定します。
- 始点と終点を指定すると、その範囲内の文字列が抽出できます。
- endを省略すると指定した範囲から末尾までの文字列が抽出できます。
- startを省略すると先頭から指定した範囲までの文字列が抽出できます。
(例)
x = 'abcdefg'
# 始点と終点を指定
print(x[1:4])
# 実行結果: bcd
# endを省略して指定
print(x[4:])
# 実行結果: efg
# startを省略して指定
print(x[:3])
# 実行結果: abc
右から数えて指定するには、負の値を使います。
一番最後の文字は、-1となります。
(例)
x = 'abcdefg'
# 始点と終点を指定
print(x[-6:-2])
# 実行結果: bcde
# endを省略して指定
print(x[-4:])
# 実行結果: defg
# startを省略して指定
print(x[:-3])
# 実行結果: abcd
startがendの値よりも大きい数値を指定すると、エラーにはならずに空文字が返されます。
また、存在しない範囲を指定してもエラーにはならず、範囲内の値のみ返されます。
(例)
x = 'abcdefg'
print(x[4:1])
# 実行結果: ""
print(x[-100:100])
# 実行結果: abcdefg
stepを追加して指定する
スライスにstep(増分)を飛び飛びで指定することもできます。
[start:stop:step]のように表し指定します。
(例)
x = 'abcdefg'
print(x[1:6:2])
# 実行結果: bdf
右から数えて指定するには、負の値を使います。
(例)
x = 'abcdefg'
print(x[::-1])
# 実行結果: gfedcba
print(x[::-2])
# 実行結果: geca
まとめ: Python 文字列の抽出をする方法について
まとめ:
Python 文字列の抽出をする方法について
今回は、文字列を抽出する方法ついて解説しました。
文字列を抽出する場合、
- インデックスで指定して抽出する方法
- スライスで始点と終点を指定して抽出する方法
について解説しました。