画像解析を行なっていると、高次元の配列を平坦化する場面に何度も出くわしたのでいつでも平坦化できるようにテンプレートを置いておきます。イテラティブな方法では回りくどくなってしまうので、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:])
