Python 实现 flatten()
本帖最后由 永恒的蓝色梦想 于 2020-4-11 15:30 编辑Python 实现 flatten()
语法flatten(iterable, /)
参数
参数描述
iterable可迭代对象
描述
flatten 函数可以用来压平可迭代对象。
返回值
这个函数会返回一个生成器。
实现方式
递归
原理
如果 iterable 中的一个元素实现了 __iter__ 方法,则递归取它的值。
例子>>> ]]]]]]
]]]]]]
>>> list(flatten(_))
>>> def gen1():
yield 1
yield 2
yield 3
>>> def gen2():
yield 4
yield gen1()
>>> def gen3():
yield 5
yield 6
yield gen2()
>>> def gen4():
yield 7
yield gen3()
>>> list(gen4())
>>> list(flatten(gen4()))
代码def flatten(it, /):
for i in it:
if hasattr(i,'__iter__'):
yield from flatten(i)
else:
yield i 二楼{:10_327:}
页:
[1]