リストを平坦化する
def flatten(x, isflat=lambda x:not isinstance(x, list)): if isflat(x): yield x else: for item in x: for i in flatten(item, isflat): yield i x = [1,2,[3,4,[5,[6],7],8],9] g = flatten(x) print g.next() print g.next() print g.next() print g.next() print g.next() print g.next() print list(flatten(x))
1 2 3 4 5 6 [1, 2, 3, 4, 5, 6, 7, 8, 9]