次に,2次元リストの使い方を説明します.まずは2次元リストが要素を行と列の2次元に並べたものと考えると良いでしょう.2次元リストを作成するには,[1,2,3]
のように作成した複数の1次元リストを ,
で区切って,全体を []
で囲うと良いでしょう.
# 3 x 3 の2次元リスト
a2 = [[1,2,3],[4,5,6],[7,8,9]]
a2
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2次元リストのサイズも1次元リストと同様に len()
で得ることができます.ここで,結果が 9
でないことに注意しよう.
len(a2)
3
1次元要素と同様にインデックスで要素を抽出すると次のような結果になります.
a2[0]
[1, 2, 3]
a2[1]
[4, 5, 6]
一つひとつの要素を抽出するには次のように指定すると良いでしょう.
a2[0][0]
1
a2[1][2]
6
上で,「2次元リストが要素を行と列の2次元に並べたもの」と説明したが,実は,Python では要素の数やデータ型が一致しなくても構いません.
b2 = [[0,1,2,3], [4,5], ['a', 'b', 'c', 'd', 'e']]
b2
[[0, 1, 2, 3], [4, 5], ['a', 'b', 'c', 'd', 'e']]
インデックスで抽出すると次のようになります.
b2[0]
[0, 1, 2, 3]
b2[2]
['a', 'b', 'c', 'd', 'e']
リストの要素としてリストを指定することもできます.こうなると3次元のイメージに近くなりますね.
c2 = [[0,1,2,3], [[4,5,6], 7], ['a', 'b']]
c2
[[0, 1, 2, 3], [[4, 5, 6], 7], ['a', 'b']]
2次元リストを初期化するには内包表記を使うと良いでしょう.
d2 = [[0] * 3 for i in range(5)]
d2
[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]