ホームページ >バックエンド開発 >Python チュートリアル >事前定義された長さを持たずに Python で 2 次元配列を定義および初期化する方法は?
長さを初期化せずに 2 次元配列を定義する
長さを指定せずに 2 次元配列を定義しようとすると、次のような問題が発生する可能性があります。 「IndexError: リストのインデックスが範囲外です。」これは、外部リストが初期化されていないために発生します。
これを解決するには、Python の「リスト内包表記」を使用して、まず空のリストで外部リストを初期化します。
w, h = 8, 5 Matrix = [[0 for x in range(w)] for y in range(h)]
これにより、「 を含むリストが作成されます」 "w" 項目の h" リスト。すべて 0 に初期化されます。
これで、配列に値を割り当てることができます。要素:
Matrix[0][0] = 1 Matrix[6][0] = 3 # error! 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」と「y」を使用する名前は、非正方配列との混同を避けるのに役立ちます。
以上が事前定義された長さを持たずに Python で 2 次元配列を定義および初期化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。