まだ自己解決していないが、問題提起だけ再度まとめておく。リストや文字列などのシーケンスの一部をビルトイン関数(やビルトインクラスのメソッド)、例えば、reversed()やcmp()などの引数やオブジェクトとして使用する場合、新たなインスタンスを作らないといけない。 L = [0, 1, 2, 3, 4, 5] L[:3] = reversed(L[:3]) # reversed()の引数でL[:3]とした時にインスタンスが発生。これが不満。そこで、以下のように同じシーケンスのコピーを作らずにシーケンスの一部を取り出したいが、 L = [0, 1, 2, 3, 4, 5] L2 = (L[k] for k in xrange(0, 3)) # インデックス3より小さいシーケンスをジェネレータで取り出すここでの、L2をreversed()やcmp()に直接渡せない。通常、シーケンスの一部をビ

