rubyには配列を平滑化するflattenなんていうメソッドがありますが、
意外にもpythonにはありませんでした。(当然あるものと思ってましたが^^;)
ググってみるとやっぱいろんな人がサンプルコード書いてますね。
そこで、自分でもflattenかいてみました。
引数がイテレータであれば平滑化します。
再帰でしかもジェネレータなんでちょっとわかりにくい?
def flatten(item):
if hasattr(item, '__iter__'):
for it in item:
for _ in flatten(it):
yield _
else:
yield item