Pythonのスライス操作のまとめ

AOJの問題で文字列のn文字目~m文字目までを操作する必要があった。
はじめは素直にlistにして~ってやってたけど、Pythonにはスライス操作というそのものズバリな機能があった。

sentence[始点:終点:ステップ数]

という書き方をします。 ステップ数は省略可能です。
以下使用例。

文字列のn文字目からm文字目までを取り出す。

s = "Hello World"
# 2文字目から5文字目までを取り出す
print(s[1:5]) # ello

文字列のn文字目以降を取り出す

s = "Hello World"
# 6文字目以降を取り出す
print(s[6:]) # World

文字列のn文字目以降を取り出す

s = "Hello World"
# 6文字目以前を取り出す
print(s[:6]) # Hello 

文字列をn文字区切りで取り出す

s = "Hello World"
# 2文字区切りで取り出す
print(s[::2]) # HloWrd

文字列を反転させる

s = "Hello World"
print(s[::-1]) # dlroW olleH

負数の指定

s = "Hello World"
print(s[-5:]) # World

スライス操作で指定するインデックスは循環しているらしく、
文字数以上もしくは以下を指定してもエラーとはならない。
また、負数を指定した場合は文字列の最後からさかのぼって参照する。