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