1
1

More than 1 year has passed since last update.

2次元配列をリスト内包表記を使って作成する方法

Posted at

2次元配列を作成する方法はいくつか方法がありますが、
今回はリスト内包表記を使って作成する方法について説明します。

結果だけを知りたい方向けに先に結論を書くと、
初期値が「0」で、「4 × 3」の2次元配列「twoD_list」をリスト内包表記で作成するには、
twoD_list = [[0 for j in range(4)] for i in range(3)]とします。

以下の説明では、
まず最も基本的な、for文を入れ子にして2次元配列を作成する方法を説明し、
次にリスト内包表記を使った2次元配列作成について説明します。

  1. for文を入れ子にして作成する
  2. リスト内包表記を使って作成する

 

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)]とより簡単に記載できます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1