Python での 2 次元配列の初期化
Python を使用する場合、2 次元配列を初期化する必要がある場合があります。または「リストのリスト」。ネストされたループを利用した提供されたコード スニペットはタスクを実行しますが、最も効率的なアプローチではない可能性があります。
簡略化された初期化
2 つの要素を初期化するより簡潔な方法次元配列はリスト内包表記を使用します:
t = [[0] * 3 for i in range(3)]
このコードはすべての要素が 0 に設定された 3x3 配列。
注意事項
便利に思えるかもしれませんが、配列を初期化するには [[v] * n] * n を使用します。予期しない動作を引き起こす可能性があります。以下のコードに示すように、このアプローチでは同じリスト参照のコピーが作成され、その結果、配列全体で参照が共有されます。
a = [[0] * 3] * 3 a[0][0] = 1 print(a) # Output: [[1, 1, 1], [1, 1, 1], [1, 1, 1]]
予想とは異なり、配列のすべての要素が 1 になります。これは、それぞれの要素が 1 になるためです。 sublist は元のリストへの参照を保持しており、1 つの要素を変更すると配列全体に影響します。
要約すると、Python で 2 次元配列を初期化するには list を使用します。理解を容易にするため、参照共有の問題により [[v] * n] * n の使用を避けてください。
以上がPython で 2D 配列を効率的に初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。