Pythonでは、[]演算子を使うことで簡単な記述で文字列を反転(逆転)させることができます。
str = "012345"
print(str[::-1])
=> 543210
このように文字列に[::-1]と添えるだけで、文字列を反転させることができます。では、何故、このようなことになるのかを詳しく見ていきます。
[]演算子は[最初:最後 + 1:間隔]という形で用います。これだけではわかりづらいので、例を見ていきましょう。
str = "01234567"
str[0:5:1] => 01234
0番目から4番目まで1間隔で取り出しています。
str[0:7:3] => 036
0番目から6番目まで、3個間隔で取り出しています。
str[0:9:1] => 012345678
str[:9:1] => 012345678
str[0::1] => 012345678
最初から最後まで1個間隔で取り出しています。
[]の中の最初の値を空欄にすると文字列の最初からを指定していることがわかります。
二番目を空欄にすると最後までを指定していることがわかります。
str[7:0:-2] => 7531
最後の値をマイナスにすると、後ろから取り出していることがわかります。
また、範囲の指定も値を逆にしています。
str[::-1] => 876543210
つまり、この場合は最初から最後まで、後ろから1個ずつ取り出す
という命令になることがわかります。
まとめます。
- 文字列を反転したい時はstr[::-1]とすれば良い。
- []演算子は[最初:最後 + 1:間隔]という形で用います。
- []の中の最初の値を空欄にすると最初から、二番目を空欄にすると最後までを指定します。
- []の中の最後の値をマイナスにすると、後ろから取り出します。
- [::-1]は最初から最後まで1個ずつ後ろから取り出す、という命令になります。