PYTHON MEBY

Pythonで文字列をスライスで部分抽出

この記事ではPythonにおける文字列のスライスを使用して、文字列の一部を抽出する方法を解説します。基本的な構文から、ステップ付きスライス、負のインデックス、スライスの省略など、様々なテクニックを紹介します。

目次

基本的なスライス

Pythonでは、文字列を部分的に抽出するためにスライスという機能が提供されています。基本的な構文は `文字列[開始インデックス:終了インデックス]` です。開始インデックスは0から始まり、終了インデックスは含まれません。

my_string = "Hello, world!"
# 0文字目から6文字目までを抽出
sliced_string = my_string[0:6]
print(sliced_string)  # 出力: Hello, 

上記のように、`my_string[0:6]` は 'Hello, ' を返します。開始インデックスと終了インデックスを指定することで、文字列の任意の部分を抽出できます。

ステップ付きスライス

スライスには、ステップサイズを指定することもできます。構文は `文字列[開始インデックス:終了インデックス:ステップ]` です。ステップは、取り出す文字の間隔を指定します。

my_string = "Hello, world!"
# 0文字目から最後まで、2文字おきに抽出
sliced_string = my_string[::2]
print(sliced_string)  # 出力: Hlo ol!

この例では、2文字おきの文字が抽出されています。ステップを負の値にすると、文字列を逆順に抽出することができます。

負のインデックス

負のインデックスを使用すると、文字列の末尾から数えることができます。-1は最後の文字、-2は最後から2番目の文字を表します。

my_string = "Hello, world!"
# 最後から5文字を抽出
sliced_string = my_string[-5:]
print(sliced_string)  # 出力: world!
# 最後から2文字目までを抽出
sliced_string = my_string[:-2]
print(sliced_string)  # 出力: Hello, worl

負のインデックスは、文字列の末尾からの抽出を簡潔に記述するのに役立ちます。

スライスの省略

スライスの開始インデックス、終了インデックス、ステップのいずれか、または全てを省略することができます。省略した場合、それぞれデフォルト値が適用されます。開始インデックスを省略すると0、終了インデックスを省略すると文字列の長さ、ステップを省略すると1になります。

my_string = "Hello, world!"
# 開始インデックスを省略
sliced_string = my_string[:5]
print(sliced_string)  # 出力: Hello
# 終了インデックスを省略
sliced_string = my_string[7:]
print(sliced_string)  # 出力: world!
# ステップを省略
sliced_string = my_string[0:5]
print(sliced_string) # 出力: Hello
# 全て省略
sliced_string = my_string[:]
print(sliced_string) # 出力: Hello, world!

スライスの省略は、文字列の全体または部分的な抽出を簡潔に記述するのに役立ちます。

実践例

ファイル名から拡張子を取り除く例

filename = "my_document.txt"
extension = filename[filename.rfind('.') + 1:]
print(extension) # 出力: txt
name = filename[:filename.rfind('.')]
print(name) # 出力: my_document

上記のように、スライスを使うと文字列操作を簡単に記述できます。様々な状況で活用してください。

関連記事