Cucco’s Compute Hack

コンピュータ関係の記事を書いていきます。

3次元の表

多次元(3次元)の配列が必要になったので、初期化と参照の方法を確認。
2次元表の中の1枠をcellとみなして、cellの中にも1次元の配列があるイメージ。

コード

import itertools

print("3次元の配列")
dim_row =2 # row
dim_col =3 # col
dim_cell =4 # cell

# ゼロ初期化
list_3d =[[[0 for z in range(dim_cell)] for y in range(dim_col)] for x in range(dim_row)]

print("\nlist_3d[0][1][2]=1")
list_3d[0][1][2]=1

print("\n単純にprint")
print(list_3d)

print("\n行を取り出してprint")
for i in list_3d:
    print(i)
    
print("\n行を、フラットな配列に変換")
for i in list_3d:
    print(list(itertools.chain.from_iterable(i)))

実行結果

3次元の配列

list_3d[0][1][2]=1

単純にprint
[[[0, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 0]], [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]]

行を取り出してprint
[[0, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 0]]
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

行を、フラットな配列に変換
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]