from collections import Iterable
items = [1,2,[3,4,[5,6],7],8]
def flatten(items, ignore_types=(str, bytes)):
for i in items:
if isinstance(i, Iterable) and not isinstance(i, ignore_types):
yield from flatten(i)
else :
yield i
a = []
for x in flatten(items):
print(x)
a.append(x)
print(a)
def flatten1(items, ignore_types=(str, bytes)):
for i in items:
if isinstance(i,Iterable) and not isinstance(i, ignore_types):
for j in flatten(i):
yield j
else:
yield i
for y in flatten1(items):
print(y)
如何扁平化处理嵌套的序列 使用和不使用yield from
最新推荐文章于 2024-09-19 07:30:00 发布