Python での 2 次元配列の定義
長さを指定せずに 2 次元配列を初期化すると、エラー「」が発生する場合があります。 IndexError: リストのインデックスが範囲外です。」これは、Python では要素を追加する前に外側のリストを空のリストで初期化する必要があるために発生します。
この問題を解決するには、リスト内包表記を使用して配列を作成します。
w, h = 8, 5 Matrix = [[0 for x in range(w)] for y in range(h)]
これにより、リストには 5 つのリストが含まれ、それぞれに 8 つの項目があり、すべてゼロに設定されます。
次に、次のように要素を配列に追加できます。
Matrix[0][0] = 1 Matrix[6][0] = 3 # error! IndexError: list index out of range Matrix[0][6] = 3 # valid
行列は "y" アドレス メジャーであることに注意してください。これは、外側のインデックス (y) が内側のインデックス (x) の前に来ることを意味します。これは、他のプログラミング言語とは異なります。
例:
print Matrix[0][0] # prints 1 x, y = 0, 6 print Matrix[x][y] # prints 3; be careful with indexing!
インデックスには任意の名前を付けることができますが、内部リストと外部リストに「x」を使用すると、次のような結果が生じる可能性があります。非正方行列のインデックスを作成するときに混乱が生じます。
以上がPython で 2 次元配列を適切に初期化してインデックスを付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。