リストの反転

L = list("abcde")

## スライスによる反転
print L[::-1]

## 元のリストの順序は変わりません
print L

## reversed()による反転
print list(reversed(L))

## これも元のリストの順序は変わりません
print L

## reverseメソッドはリスト自体の中身を反転させます
L.reverse()
print L

reverseメソッドはin-place(変数内容の変化)による反転なのでメモリ効率はよいです。
スライスによる反転(L[::-1])はその場で反転した新しいリストが作成され、元のリストは保存されます。非常に大きいリストを反転させる場合、反転にかかる時間と必要なメモリ量を考えるべきです。
reversedは元のリストを変更せず、また新しいリストも作成せず、位置情報を頼りに逆順で値を返すイテレータを返します。上のサンプルでは結局listに置き換えているためあまり意味はありませんが、もし最終結果だけ逆順のforループにして表示するという場合であればとても効率がよいものになります。ただしイテレータを作った後にリストの内容を変えると返されない値が出てくるかもしれません。