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
最新推荐文章于 2021-03-23 23:44:45 发布
本文介绍了一种使用Python实现的列表展平方法,通过递归函数处理嵌套列表,排除字符串和字节类型,实现了列表元素的一维化。两种实现方式分别为使用 yield from 和内嵌 for 循环。
1385

被折叠的 条评论
为什么被折叠?



