每天CookBook之Python-070

  • 将复杂嵌套数据序列化
from collections import Iterable


def flatten(items, ignore_types=(str, bytes)):
    for x in items:
        if isinstance(x, Iterable) and not isinstance(x, ignore_types):
            for i in flatten(x):
                yield i
        else:
            yield x

items = [1, 2, [3, 4, [5, 6], 7], 8]

for x in flatten(items):
    print(x)

print(flatten(items))

out

1
2
3
4
5
6
7
8
<generator object flatten at 0x005A2840>
posted @ 2016-07-22 21:22  4Thing  阅读(108)  评论(0编辑  收藏  举报