说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
以下 Python 代码实现将一个可能的多层容器数据展开为只有一层的数据。
代码如下:
def flatten(nested):
try:
for sublist in nested:
for element in flatten(sublist):
yield element
except TypeError:
yield nested
测试:
x1 = [[[1], 2], 3, 4, [5, [6, 7]], 8]
y1 = [*flatten(x1)]
print(y1)
# [1, 2, 3, 4, 5, 6, 7, 8]
# 测试标量
x2 = 2
y2 = [*flatten(x2)]
print(y2)
# [2]
可见,利用生成器函数实现了可展平容器和标量的功能。
(完)
更新时间:2023-04-07 10:30:35 标签:python 生成器