将一个多层嵌套的序列展开成一个单层列表

可以写一个包含yield from 语句的递归生成器来轻松解决这个问题。

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):
yield from flatten(x)
else:
yield x
items = [1, 2, [3, 4, [5, 6], 7], 8]
# Produces 1 2 3 4 5 6 7 8
for x in flatten(items):
print(x)

bb=list(flatten(items))
print(bb)

 python 展开嵌套的序列

 

相关文章:

  • 2022-12-23
  • 2021-07-14
  • 2021-12-01
  • 2022-12-23
  • 2022-01-10
  • 2021-05-17
  • 2021-09-29
猜你喜欢
  • 2021-08-18
  • 2021-07-29
  • 2022-12-23
  • 2022-12-23
  • 2022-01-05
  • 2022-01-14
相关资源
相似解决方案