每天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>