長さを初期化せずに Python で 2 次元配列を定義する
長さを指定せずに Python で 2 次元配列を定義しようとすると、例:
Matrix = [][]
「IndexError: list」が発生する可能性があります。インデックスが範囲外です」エラー。これを解決するには、項目を追加する前に、外側のリストを空のリストで初期化する必要があります。 Python は、この目的のためにリスト内包表記と呼ばれる手法を利用します。
次のコードを考えてみましょう:
w, h = 8, 5 Matrix = [[0 for x in range(w)] for y in range(h)]
ここでは、それぞれ 8 つのゼロを含む 5 つのリストのリストを作成しました。ここで、この配列に項目を追加できます。
Matrix[0][0] = 1 Matrix[6][0] = 3 # error! 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
非正方行列を扱う場合は、インデックス付けに注意し、内部リストと外部リストの両方に同じ変数名 (例: "x") を使用しないことが重要です。
以上が事前定義された次元を使用せずに Python で 2 次元配列を適切に初期化して使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。