pythonで多次元配列を作成する関数を自作した
初めに
pythonの多次元配列を作るには内包表記を入れ子にしなければなりません。
それでは面倒なので多次元配列を作る関数を自作しました。
ソースコード
def make_array(n,init_elem=0,td=1):
dimension=len(n)
if td>=dimension:
return [init_elem for i in range(n[td-1])]
else:
return [make_array(n,init_elem,td+1) for i in range(n[td-1])]
def make_array(n,init_elem=0,td=1):
dimension=len(n)
if td>=dimension:
return [init_elem for i in range(n[td-1])]
else:
return [make_array(n,init_elem,td+1) for i in range(n[td-1])]
すごくシンプルですね。
再帰関数を使っているだけです。
使い方
1次元配列を定義する
print(make_array([10],0))
#[0,0,0,0,0,0,0,0,0,0]
初期化する数値を変える
print(make_array([10],1))
#[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
5*4の2次元配列
print(make_array([5,4],0))
#[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
5次元配列(2*2*2*2*2)
print(make_array([2]*5,0))
#[[[[[0, 0], [0, 0]], [[0, 0], [0, 0]]], [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]], [[[[0, 0], [0, 0]], [[0, 0], [0, 0]]], [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]]]
まとめ
print(make_array([10],0))
#[0,0,0,0,0,0,0,0,0,0]
print(make_array([10],1))
#[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
print(make_array([5,4],0))
#[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
print(make_array([2]*5,0))
#[[[[[0, 0], [0, 0]], [[0, 0], [0, 0]]], [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]], [[[[0, 0], [0, 0]], [[0, 0], [0, 0]]], [[[0, 0], [0, 0]], [[0, 0], [0, 0]]]]]
pythonはシンプルにソースコードが書けますね。
Author And Source
この問題について(pythonで多次元配列を作成する関数を自作した), 我々は、より多くの情報をここで見つけました https://qiita.com/PenguinCabinet/items/3adc4ed44a8a2ab84b23著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .