reverse()メソッドの問題点

list.reverse()は破壊的メソッドなので、新しいインスタンスを作らずにリストの一部を反転したい場合はどうすれば良いのだろう?


やっと「みんPy」を読み終わり、「珠玉のプログラミング」を読み始めたのだが、かなりの良書。その中で、文字列やリストの初めのいくつかの要素を後ろに持っていくという問題があった。


例えば、3文字なら'abcdefghi' => 'defghiabc'など。これはテキストエディタなどで応用されているらしいが、reverse()を使うと効率よく解ける。


しかし、Pythonのlist.reverse()は破壊的メソッドなので、例えば、L=[0,1,2,3,4,5]で、L[:3].reverse()とはできないし、L[:3]と取り出す時点でインスタンスが発生するので効率良くない。リストの一部をreverseする方法が知りたい…。