a = 2
b = 3
c = 4
x = y = z = [0 for i in xrange(a*b*c)]
で複数のリストを初期化します(私は、各リストの初期化のために、bとcを掛けたくないので)、 0の別々のリストとして。上記の場合、xが更新されると、yとzも同じ変更で同時に更新されます。 [0 for i in xrange(a*b*c)]
が[0] * a*b*c
単純に等価であることををy、zは1行</strong>で<strong>初期化することができ、xはする方法はありますのpython
x, y, z = [[0 for i in xrange(a*b*c)] for _ in xrange(3)]
注:
リストが実際にビルドされないようにジェネレータを使用するのはどうですか? 'a、b、c =(xrange(i * b * c)in _ xrange(3))' – Netwave
@DanielSanchez - これは確かに可能です。しかし、パフォーマンス上の利点を見るには、1行に複数の独立変数に展開するよりも多くのリストを作成する必要があります。いずれにしても、参照を格納するだけで済みます。 – TigerhawkT3
もう少し説明してください。別のリストが含まれているリストを作成していますが、そのリストを使用することはありません。ジェネレータを使うことで、そのリストを取り除くだけです。私は間違っているか何かを逃していますありがとう!! – Netwave