サムネがコーヒーの記事は書きかけです。

高次元配列を再帰呼び出しで平坦化(一次元化)する

画像解析を行なっていると、高次元の配列を平坦化する場面に何度も出くわしたのでいつでも平坦化できるようにテンプレートを置いておきます。イテラティブな方法では回りくどくなってしまうので、deep recursionで実装します。

def flat(l):
    if l == []:
        return []
    else:
        if isinstance(l[0],int) or isinstance(l[0],str):
            return [l[0]] + flat(l[1:])
        else:
            return flat(l[0]) + flat(l[1:])

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です