numpy配列初期化メソッドの働きと同様に、任意のサイズのリストをオブジェクトで初期化する関数を実装しようとしています。任意形状のネストされたリストを初期化する
def fill(shape, object):
私はこれに対して私の頭を叩いてきたが、任意の長さの次元のためにこれを行う方法を考えることはできません。私はそれが何らかの再帰を必要とするだろうと推測しています。
これは、望ましい動作の例です。簡単にするために、オブジェクトがちょうど浮動小数点数0ですが、私はこれがどのクラスで作業する必要があります:
> fill((2, 3, 4), 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.]]
]
整数nでリストを掛けてもn個の新しいリストは作成されません。同じリストに対して複数の参照のみを行います。 – DSM
もちろん、私の間違い – GP89
また、それは3次元のためにのみ動作します。 'fill((2,3,4,5)、float)'に失敗します。 –