2次元配列を作成する方法はいくつか方法がありますが、
今回はリスト内包表記を使って作成する方法について説明します。
結果だけを知りたい方向けに先に結論を書くと、
初期値が「0」で、「4 × 3」の2次元配列「twoD_list」をリスト内包表記で作成するには、
twoD_list = [[0 for j in range(4)] for i in range(3)]
とします。
以下の説明では、
まず最も基本的な、for文を入れ子にして2次元配列を作成する方法を説明し、
次にリスト内包表記を使った2次元配列作成について説明します。
- for文を入れ子にして作成する
- リスト内包表記を使って作成する
1.for文を入れ子にして作成する
基本的なfor文の入れ子のみを使って作成します。
コードは以下のように記述します。
# for文の外側は3回実行
for i in range(3):
# 2次元listの内側に作るlistを宣言
sub_list = []
# for文の内側は4回実行
for j in range(4):
# 内側に作ったlistに値を追加
sub_list.append(i * 10 + j)
# 内側に作ったlistを2次元listに追加
twoD_list.append(sub_list)
# 結果出力
print(twoD_list)
実行すると、以下のように「4 × 3」の2次元配列が表示されます。
[[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23]]
2.リスト内包表記を使って作成する
続いてリスト内包表記を使って作成します。
コードは以下のように記述します。
# リスト内包表記で「4 × 3」の2次元listを作成
twoD_list = [[(i * 10 + j) for j in range(4)] for i in range(3)]
# 結果出力
print(twoD_list)
for文を入れ子にして作成するのに比べて、かなり簡単に記述できます。
実行すると、for文を入れ子にした場合と同様に「4 × 3」の2次元配列が表示されます。
[[0, 1, 2, 3], [10, 11, 12, 13], [20, 21, 22, 23]]
なお冒頭にも記載しましたが、
初期値が固定値の「0」で、「4 × 3」の2次元配列「twoD_list」をリスト内包表記で作成するには、
twoD_list = [[0 for j in range(4)] for i in range(3)]
とより簡単に記載できます。