0

80*80 グリッドを作成しようとして、この行をコードに入れようとしました。

a = [[0] * 80] * 80

しかし、同じリストへの参照が 80 あることが判明し、この問題に気付くのに非常に時間がかかりました。

一般的なメソッドでPythonがどのように参照されているかを理解/記憶する方法はありますか?

ありがとう!

4

1 に答える 1

1

はい、これを行うと、同じリストのN個の参照があります。

個別に操作できるさまざまなリストが必要な場合は、次の操作を実行できます。

a = [[0 for x in xrange(80)] for y in xrange(80)]

range ではなく xrange を使用していることに注意してください。これはジェネレーターであり、メモリに range を割り当てません。

于 2012-04-15T06:21:31.697 に答える