Posts

Showing posts from November, 2008

リストのリスト(2重リスト)の初期化のなぞ

あれれ? 画像処理をPILで書いているのですが、大量のデータを保存するリストを作ろうとして、意外な現象に出会いました。ゆっくり考えれば当たり前なのかもしれませんが、とりあえずメモです >>> x = [[1,2,3]]*3 >>> x [[1, 2, 3], [1, 2, 3], [1, 2, 3]] >>> x[0][1] = 10 >>> x [[1, 10, 3], [1, 10, 3], [1, 10, 3]] 期待してるのはx[0]の2番目だけが入れ替わる事なのですが、[[...]]*nでコピーされるのは参照だけなんですね。そうか、コピーされると考えれば参照なのが当たり前な気もしてきました。